Apuntes de R
Básicos de entorno y lectura/escritura de ficheros:
- Configurar el directorio de trabajo:
setwd("C:/User")
|
- Recoger directorio de trabajo:
getwd()
|
- Concatenar cadenas:
nombreruta <- paste(getwd(),"/decathlon.csv", sep = "")
|
- Leer fichero CSV:
decatch <- read.csv(nombreruta, encoding="UTF-8",
header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
|
- Escribir dataset en CSV:
paraExcel <- data.frame(decatch$score,decatch$pais)
names(paraExcel) <- c('score','pais')
nombreruta_salida_PEC3 <- paste(getwd(),"/anova.csv", sep = "")
write.csv(paraExcel,nombreruta_salida,row.names = FALSE) |
- Leer fichero JSON:
library("rjson")
json_data <- fromJSON(file=json_file)
|
Cálculos Estadísticos básicos:
- Media:
mean(df.Longitud)
|
- Mediana:
median(df.Longitud)
|
- Desviación típica:
sd(df.Longitud)
|
- Correlación entre variables:
cor(df$followers,df$count)
|
- Resumen de los datos estadísticos de un data frame:
summary(df)
|
- Estadístico Z:
Calcular el intervalo de confianza de 95% de la media poblacional conociendo la desviación estándar, en este caso desviacionTipicaMuestralPrecio = sd(Data_PEC2$precio)
library(TeachingDemos)
z.test(df$precio,mu = mm, stdev = desviacionTipicaMuestralPrecio,alternative = "two.sided",conf.level = 0.95) |
- Estadístico T Student:
library(TeachingDemos)
t.test(df$precio, y=NULL, alternative = c("two.sided"), mu = n, paired = FALSE, var.equal = FALSE, conf.level = 0.95) |
Data Frames
- Creación de un data frame con dos o más vectores. Los vectores tienen que tener el mismo número de registros:
df <- data.frame(ids, ret_ids)
|
- Elegir columnas en un data frame. En este caso se requiere todas las filas del data frame, y las columnas del 1 al 10
df[,1:10]
|
- Queries a un data frame en formato SQL. Selecciona del dataframe dfRTweet todos los ids distintos del data set y que no son igual a NA.
require(sqldf)
df.nodup <- sqldf('SELECT DISTINCT ids FROM df where ids <> "NA" order by creado DESC')
|
- Tipos de datos:
Consulta el tipo de datos del data frame df:
str(df)
|
- Renombrar columnas de un data frame:
En este caso nombramos la primera columna como ids, segunda como Count y tercera como Followers.
names(dfT) <- c('ids','count','followers')
|
- Ver los datos de un dataframe en RStudio:
View(df)
|
- Enfrentamiento (Join) entre data frame
Right join, enfrentando dos data frames por la clave “ids”
df.filtrado <- right_join(dfordenado,dfnodup, by="ids")
|
- Concatenación de data frames:
do.call ejecuta la instruccion “rbind” para la lista de data frames indicadas en list.
dfTodos <- do.call("rbind", list(dfMentions, dfReplies, dfRetweet))
|
- Filtro de datos en un data frame:
En este caso se filtran los registros del data frame dfMales donde el campo year sea igual a 1987.
Y1987 <- dfMales[dfMales$year == 1987,]
|
- Mostrar los primeros registros de un data frame:
Con el siguiente comando se muestran los primeros 50 registros del data frame Y1987.
head(Y1987,50)
|
- Mostrar los últimos registros de un data frame:
Con el siguiente comando se muestran los últimos 50 registros del data frame Y1987.
tail(Y1987,50)
|
- Cálculo de una nueva columnas con dos columnas de un data frame:
nuevaCol <- c(Y1987$exper + Y1987$school + 6)
|
Añadir una nueva columna al data frame:
Y1987$age <- nuevaCol
|
- Calcular el valor máximo de una columna de un data frame:
max(Y1987$age)
|
- Calcular el valor mínimo de una columna de un data frame:
min(Y1987$age)
|
- Consulta de los nombres de las columnas de un data frame:
Consulta el nombre de las columnas del data frame Males.
ls(dfMales)
|
- Número de columnas de un data frame:
ncol(dfMales)
|
- Número de filas de un data frame:
nrow(dfMales)
|
- Contar los valores distintos de un campo:
En este caso seria contar de cuantas veces aparece cada uno de los valores distintos del campo industry.
data.frame(table(Y1987$industry))
|
- Calcular el valor medio de los distintos valores de una columna:
En este caso se calcularía la media del campo wage, para los distintos valores del campo industry.
aggregate(Y1987$wage ~ Y1987$industry, Y1987, mean)
|
- Filtrar por un valor y mostrar sólo ciertas columnas:
En este caso se filtrarian los registros cuya columna health sea igual a yes, y mostraria tres columnas, la columna X, la columna health y la columna wage.
Y1987[Y1987$health == "yes",c("X","health","wage")]
|
- Calcular el exponencial de cada valor de una columna numérica en un data frame:
Y1987$wage <- exp(Y1987$log_wave)
|
- Seleccionar un porcentaje de datos de un dataframe para training y para testing:
#se genera una partición con el 70% de los registros de Y1987NoOutliners
particion <- sample.split(Y1987NoOutliners,SplitRatio = 0.7) #se genera un data.frame train, con el 70% de los registros train <- subset(Y1987NoOutliners,particion) #se genera un data.frame test con el resto de los registros de Y1987NoOutliners, es decir el 30%. test <- subset(Y1987NoOutliners,!particion) |
Lista
- Tratamiento recursivo de Listas:
En este caso recupera aquellos ids, de una estructura json de twitter siempre que el campo venga informado.
dfOriginal.ids <- sapply(json_data,function(x) if(is.null(x$retweeted_status$id_str)) NA else x$retweeted_status$id_str)
|
Vectores
- Concatenación de vectores:
Concatena los vectores, user_mentions, user_replies_ids y user_Retweet_ids en el vector user_vector.
user_vector <- c(user_mentions,user_Replies_ids,user_Retweet_ids)
|
Factores
- Renombrar Factores:
Podemos usar la función revalue de la libreria plyr que nos permite renombrar los niveles del atributo industry, ya que este atributo es de clase factor.
Y1987$industry <- revalue(Y1987$industry, c("Agricultural"="Agricultural and Mining", "Mining"="Agricultural and Mining"))
|
No hay comentarios:
Publicar un comentario