El paquete dplyr en R es una herramienta poderosa para la manipulación y transformación de datos. Proporciona una gramática intuitiva para realizar operaciones comunes como seleccionar columnas (select), filtrar filas (filter), ordenar datos (arrange), crear nuevas variables (mutate), y resumir datos (summarize). Estas funciones son fáciles de usar y optimizan la eficiencia del código.
Código:
# Cargar el paquete dplyr
library(dplyr)
# Crear un data frame de ejemplo
datos <- data.frame(
nombre = c("Ana", "Luis", "Marta", "Juan", "Sofia"),
edad = c(28, 34, 45, 23, 37),
salario = c(3000, 4000, 5000, 3200, 4100),
departamento = c("Ventas", "IT", "HR", "IT", "Ventas")
)
# Función select: seleccionar columnas específicas
datos_seleccionados <- select(datos, nombre, salario)
# Función filter: filtrar filas basadas en condiciones
datos_filtrados <- filter(datos, edad > 30)
# Función arrange: ordenar datos por una o más columnas
datos_ordenados <- arrange(datos, salario)
# Función mutate: crear nuevas variables o modificar existentes
datos_mutados <- mutate(datos, salario_anual = salario * 12)
# Función summarize: crear resúmenes estadísticos
resumen_datos <- datos %>%
group_by(departamento) %>%
summarize(
promedio_salario = mean(salario),
max_edad = max(edad)
)
Explicación del código:
select: La función select se utiliza para seleccionar columnas específicas de un data frame. Por ejemplo, select(datos, nombre, salario) crea un nuevo data frame datos_seleccionados con solo las columnas nombre y salario.
filter: La función filter se utiliza para filtrar filas basadas en condiciones lógicas. Por ejemplo, filter(datos, edad > 30) crea un nuevo data frame datos_filtrados que solo incluye las filas donde la columna edad es mayor que 30.
arrange: La función arrange se utiliza para ordenar los datos por una o más columnas. Por ejemplo, arrange(datos, salario) crea un nuevo data frame datos_ordenados ordenado por la columna salario en orden ascendente.
mutate: La función mutate se utiliza para crear nuevas variables o modificar las existentes. Por ejemplo, mutate(datos, salario_anual = salario * 12) agrega una nueva columna salario_anual al data frame datos, calculando el salario anual multiplicando el salario mensual por 12.
summarize: La función summarize se utiliza para crear resúmenes estadísticos de los datos. Junto con group_by, puedes agrupar datos y calcular estadísticas resumidas. Por ejemplo, el código datos %>% group_by(departamento) %>% summarize(promedio_salario = mean(salario), max_edad = max(edad)) agrupa los datos por departamento y calcula el salario promedio y la edad máxima para cada grupo, creando un nuevo data frame resumen_datos.
Estas funciones de dplyr te permiten manipular y transformar datos de manera eficiente y clara, mejorando la legibilidad y la productividad en el análisis de datos en R.
El paquete tidyr en R se utiliza para transformar y limpiar datos, facilitando el cambio entre formatos de datos amplios y largos. Las funciones principales de tidyr incluyen gather para convertir datos de formato ancho a largo, spread para convertir datos de formato largo a ancho, separate para dividir una columna en múltiples columnas, y unite para combinar múltiples columnas en una sola.
Código:
# Cargar el paquete tidyr
library(tidyr)
# Crear un data frame de ejemplo
datos <- data.frame(
nombre = c("Ana", "Luis", "Marta"),
ventas_2020 = c(150, 200, 250),
ventas_2021 = c(180, 220, 270)
)
# Función gather: convertir de formato ancho a largo
datos_largos <- gather(datos, año, ventas, ventas_2020:ventas_2021)
# Crear un data frame de ejemplo en formato largo
datos_largos <- data.frame(
nombre = c("Ana", "Ana", "Luis", "Luis", "Marta", "Marta"),
año = c("2020", "2021", "2020", "2021", "2020", "2021"),
ventas = c(150, 180, 200, 220, 250, 270)
)
# Función spread: convertir de formato largo a ancho
datos_anchos <- spread(datos_largos, año, ventas)
# Crear un data frame de ejemplo para separar
datos_separar <- data.frame(
nombre_completo = c("Ana_Santos", "Luis_Perez", "Marta_Lopez")
)
# Función separate: dividir una columna en múltiples columnas
datos_separados <- separate(datos_separar, nombre_completo, into = c("nombre", "apellido"), sep = "_")
# Crear un data frame de ejemplo para unir
datos_unir <- data.frame(
nombre = c("Ana", "Luis", "Marta"),
apellido = c("Santos", "Perez", "Lopez")
)
# Función unite: combinar múltiples columnas en una sola
datos_unidos <- unite(datos_unir, nombre_completo, nombre, apellido, sep = "_")
Explicación del código:
gather: La función gather se utiliza para convertir datos de formato ancho a largo. Por ejemplo, gather(datos, año, ventas, ventas_2020:ventas_2021) transforma el data frame datos de formato ancho (donde las columnas representan años) a formato largo (donde hay una columna para los años y otra para las ventas). Esto es útil cuando se desean analizar datos a lo largo del tiempo o realizar operaciones sobre un conjunto unificado de datos.
spread: La función spread se utiliza para convertir datos de formato largo a ancho. Por ejemplo, spread(datos_largos, año, ventas) toma el data frame datos_largos (donde los años y las ventas están en columnas separadas) y lo transforma de nuevo a formato ancho, creando una columna para cada año.
separate: La función separate se utiliza para dividir una columna en múltiples columnas. Por ejemplo, separate(datos_separar, nombre_completo, into = c("nombre", "apellido"), sep = "_") toma la columna nombre_completo y la divide en dos columnas: nombre y apellido, usando el carácter _ como separador.
unite: La función unite se utiliza para combinar múltiples columnas en una sola. Por ejemplo, unite(datos_unir, nombre_completo, nombre, apellido, sep = "_") toma las columnas nombre y apellido y las une en una sola columna nombre_completo, separando los valores con _.
