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 _
.