- Published on
Transformaciones de Datos con Base R y Tidyverse en R
- Authors
- Name
- Jordan Rodriguez
Transformaciones de Datos con Base R y Tidyverse
En este tutorial, exploraremos técnicas esenciales para transformar datos en R. Utilizaremos tanto funciones de base R como herramientas del paquete tidyverse para cubrir tareas comunes como filtrado, agrupación, resumen, creación de nuevas variables y más.
1. Filtrado y Selección de Datos
1.1 Filtrado con Base R
# Crear un conjunto de datos de ejemplo
df <- data.frame(
edad = c(25, 34, 45, 50, 29),
sexo = c("M", "F", "M", "F", "M"),
ingresos = c(2500, 4000, 3200, 5000, 2800)
)
# Filtrar filas donde la edad sea mayor a 30
filtrado <- subset(df, edad > 30)
print(filtrado)
## edad sexo ingresos
## 2 34 F 4000
## 3 45 M 3200
## 4 50 F 5000
1.2 Filtrado con Tidyverse
library(dplyr)
# Filtrar filas donde la edad sea mayor a 30
filtrado_tidy <- df %>%
filter(edad > 30)
print(filtrado_tidy)
## edad sexo ingresos
## 1 34 F 4000
## 2 45 M 3200
## 3 50 F 5000
2. Agrupación y Resumen de Datos
2.1 Agrupación y Resumen con Base R
# Calcular el ingreso promedio por sexo
resumen <- aggregate(ingresos ~ sexo, data = df, FUN = mean)
print(resumen)
## sexo ingresos
## 1 F 4500
## 2 M 2833.333
2.2 Agrupación y Resumen con Tidyverse
# Calcular el ingreso promedio por sexo
resumen_tidy <- df %>%
group_by(sexo) %>%
summarise(promedio_ingresos = mean(ingresos))
print(resumen_tidy)
## sexo promedio_ingresos
## 1 F 4500
## 2 M 2833.333
3. Creación de Nuevas Variables
3.1 Creación de Variables con Base R
# Crear una nueva variable que calcule el ingreso anual
df$ingreso_anual <- df$ingresos * 12
print(df)
## edad sexo ingresos ingreso_anual
## 1 25 M 2500 30000
## 2 34 F 4000 48000
## 3 45 M 3200 38400
## 4 50 F 5000 60000
## 5 29 M 2800 33600
3.2 Creación de Variables con Tidyverse
# Crear una nueva variable que calcule el ingreso anual
df_tidy <- df %>%
mutate(ingreso_anual = ingresos * 12)
print(df_tidy)
## edad sexo ingresos ingreso_anual
## 1 25 M 2500 30000
## 2 34 F 4000 48000
## 3 45 M 3200 38400
## 4 50 F 5000 60000
## 5 29 M 2800 33600
4. Ordenamiento de Datos
4.1 Ordenamiento con Base R
# Ordenar datos por ingresos en orden descendente
ordenado <- df[order(-df$ingresos), ]
print(ordenado)
## edad sexo ingresos ingreso_anual
## 4 50 F 5000 60000
## 2 34 F 4000 48000
## 3 45 M 3200 38400
## 5 29 M 2800 33600
## 1 25 M 2500 30000
4.2 Ordenamiento con Tidyverse
# Ordenar datos por ingresos en orden descendente
ordenado_tidy <- df_tidy %>%
arrange(desc(ingresos))
print(ordenado_tidy)
## edad sexo ingresos ingreso_anual
## 1 50 F 5000 60000
## 2 34 F 4000 48000
## 3 45 M 3200 38400
## 4 29 M 2800 33600
## 5 25 M 2500 30000
5. Reshape de Datos
5.1 Pivotar Datos con Tidyverse
library(tidyr)
# Crear un ejemplo de datos en formato ancho
datos_ancho <- data.frame(
producto = c("A", "B"),
enero = c(100, 200),
febrero = c(150, 250)
)
# Transformar de ancho a largo
datos_largo <- datos_ancho %>%
pivot_longer(cols = enero:febrero, names_to = "mes", values_to = "ventas")
print(datos_largo)
## producto mes ventas
## 1 A enero 100
## 2 A febrero 150
## 3 B enero 200
## 4 B febrero 250
Conclusión
En este tutorial, aprendiste a realizar transformaciones esenciales de datos en R utilizando tanto funciones de base R como herramientas del tidyverse. Estas habilidades son clave para limpiar, analizar y preparar datos para análisis más avanzados.
¡Experimenta con tus propios conjuntos de datos y domina estas técnicas para optimizar tu flujo de trabajo en R!