# creando un vector x x <- c(1, 5, 7, 12, 13) x # los vectores son similares a las listas, podemos seleccionar solo # algunos elementos. Los índices comienzan en 1 en lugar de 0. x[2:4] # selecciona elementos 2 a 4 # El tamaño de un vector queda definido en su creación. Para agregar o # eliminar elementos hay que reasignar el vector. x <- c(x[1:3],99,x[4:5]) # inserta 99 entre el 7 y el 12 x # Saber el tamaño del vector con length length(x) # Filtrar valores del vector menores a 13 x[x < 13] # Podemos ver el tipo de datos del vector con mode y <- c(1, 2, 'Pi') mode(y) mode(x) # Creando la Matriz A utilizando matrix A <- matrix(c(1,2,3,4),nrow=2,ncol=2) A # Seleccionando la fila 1 A[1,] # Seleccionando la columna 2 A[,2] # Matriz con datos ordenados por fila en lugar del comportamiento por defecto # en columnas. Utilizamos byrow True B <- matrix(c(1,2,3,4,5,6),nrow=2,byrow=T) B # Multiplicación de matrices. A %*% B # Multiplicación por escalar B * 2 # Seleccionando múltiples columnas B[,1:2] # Creando una lista r <- list(nombre="Raul", edad=35, soltero=T) # Accediendo a los elementos de la lista r$nombre r$edad r$soltero # Agregando un elemento r$ciudad <- "Buenos Aires" r # Accediendo a los indices con names names(r) # Ejemplo de factores con 4 niveles x <- c(4, 5, 12, 12, 5, 12, 4, 7) y <- factor(x) str(y) # Creando un DataFrame nombres <- c("Raul","Ezequiel") edades <- c(13,18) d <- data.frame(nombres, edades) d str(d) # Accediendo las columnas d$edades # Accediendo filas d[1,] # Para controlar los paquetes que se encuentran cargados path.package() # Para instalar paquetes install.packages(c("outliers", "forecast")) # Para cargar el paquete library(forecast) # importando librerías library(tidyverse) # Ejemplo tidyverse # utiizando el dataset mpg incluido en ggplot2 head(mpg) # Graficando los datos con ggplot ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + geom_point(mapping = aes(color = class)) + geom_smooth() # creando un diagrama de cajas ggplot(data = mpg, mapping = aes(x = class, y = hwy)) + geom_boxplot() # Ejemplo dplyr # usando filter para encontrar los modelos de chevrolet de 8 cilindros. (chev <- filter(mpg, cyl == 8, manufacturer == 'chevrolet')) # filtrado más avanzado filter(mpg, cyl %in% c(4, 6) & manufacturer == 'audi') # Ordenar por year, class y manufacturer head(arrange(mpg, year, class, manufacturer)) # Seleccinando columnas por nombre head(select(mpg, year, class, manufacturer)) # sumariazando summarise(mpg, displ_mean = mean(displ, na.rm = TRUE)) # Combinando con pipe para obtener la cuenta de modelos por año. (chev <- group_by(mpg, manufacturer,year, model) %>% select(manufacturer, model, year) %>% summarise(count= n()) %>% filter(manufacturer == 'chevrolet')) # Ejemplo de Caret para modelado # utiizando el dataset mtcars incluido en ggplot2 head(mtcars) # Diagrama de dispersión para ver la relación entre atributos mpg y wt ggplot(data = mtcars, aes(x = wt, y = mpg)) + geom_point() # Parece existir una relación. # construyendo el modelo con train require(caret) modelo.mtcars_lm <- train(mpg ~ wt ,mtcars ,method = "lm" ) # Obteniendo los coeficientes de # - pendiente # - intercepcion coef.itercep <- coef(modelo.mtcars_lm$finalModel)[1] coef.pendiente <- coef(modelo.mtcars_lm$finalModel)[2] coef.itercep coef.pendiente # Dibujando el modelo de regresión ggplot(data = mtcars, aes(x = wt, y = mpg)) + geom_point() + geom_abline(slope = coef.pendiente, intercept = coef.itercep, color = "red") # Ejemplo data.table library(data.table) dt <- data.table(mtcars) class(dt) # calculando la media dt[,mean(mpg)] # media por am dt[,mean(mpg),by=am] # con renombre de columna dt[,.(avg=mean(mpg)),by=.(am,cyl)] # Contando el número de autos por cilindrada dt[, .N, by=cyl] # Los mejore 5 autos con la mejor MPG head(dt[order(-mpg)],5)