El paquete Tidyverse (IV): tidyr

En esta entrada hablaremos de tidyr, un paquete esencial para organizar datos en formatos claros y comprensibles, lo que facilita su análisis posterior.

¿Qué es tidyr?

tidyr es parte del ecosistema Tidyverse en R y se centra en hacer que los datos sean «tidy» o limpios. Según Hadley Wickham, un dato está «limpio» si cada columna representa una variable, cada fila representa una observación y cada celda contiene un único valor. tidyr proporciona herramientas para reorganizar los datos de manera que cumplan con estos principios.

Funciones Principales de tidyr

Las funciones más importantes de tidyr incluyen pivot_longer(), pivot_wider(), separate(), y unite().

Vamos a explorar cada una de estas funciones con ejemplos prácticos:

pivot_longer()

Esta función se utiliza para transformar datos de un formato ancho a uno largo, aumentando el número de filas y disminuyendo el número de columnas. Es especialmente útil cuando varias columnas representan la misma variable.

Ejemplo Práctico:

Supongamos que tienes un conjunto de datos sobre temperaturas registradas en diferentes ciudades durante varios meses, estructurado de manera que cada mes sea una columna:

library(tidyr)
library(dplyr)

# Datos de ejemplo
datos <- tibble(
  ciudad = c("Ciudad A", "Ciudad B"),
  enero = c(20, 25),
  febrero = c(22, 26)
)

# Transformar de formato ancho a largo
datos_largos <- datos %>%
  pivot_longer(cols = -ciudad, names_to = "mes", values_to = "temperatura")

pivot_wider()

La función opuesta a pivot_longer(), pivot_wider() transforma los datos de un formato largo a uno ancho, útil cuando se tiene una columna que representa múltiples variables.

Ejemplo Práctico:

Si partimos de los datos en formato largo del ejemplo anterior y queremos volver al formato ancho:

# Transformar de formato largo a ancho
datos_ancho <- datos_largos %>%
  pivot_wider(names_from = mes, values_from = temperatura)

separate()

separate() se usa para dividir una columna en varias, basándose en un delimitador.

Ejemplo Práctico:

Si tienes una columna con fechas en formato «año-mes-día» y quieres separarla en tres columnas distintas:

# Datos de ejemplo
datos_fecha <- tibble(
  fecha = c("2023-01-01", "2023-02-01")
)

# Separar la columna fecha
datos_separados <- datos_fecha %>%
  separate(fecha, into = c("año", "mes", "día"), sep = "-")

unite()

unite() es lo contrario de separate(), combinando múltiples columnas en una.

Ejemplo Práctico:

Si deseas combinar las columnas del año, mes y día en una única columna de fecha:

# Unir columnas en una
datos_unidos <- datos_separados %>%
  unite("fecha", año, mes, día, sep = "-")

A tener en cuenta: tidyr es una herramienta poderosa dentro de Tidyverse que facilita la limpieza y organización de datos en R. Al convertir los datos en un formato «limpio», tidyr no solo hace que el análisis de datos sea más sencillo y eficiente, sino que también asegura que los datos puedan ser fácilmente manejados por otras herramientas del Tidyverse. Con tidyr, los científicos de datos pueden dedicar menos tiempo a la preparación de datos y más tiempo a su análisis, lo que en última instancia conduce a insights más profundos y a una mejor toma de decisiones basada en datos.

Deja un comentario

Tu dirección de correo electrónico no será publicada.