La preparación de los datos es una de las tareas más tediosas y frustrantes a las que nos enfrentamos los científicos de datos. En R tenemos una colección de paquetes que nos permite realizar estas tareas de una forma eficiente: el Tidyverse. En esta introducción a Tidyverse quiero explicar qué es el Tidyverse y cuales son los paquetes que los forman. Dejando para futuras entradas ejemplos de uso concretos de cada uno de los paquetes que forman parte del Tidyverse.
¿Qué es el Tidyverse?
El Tidyverse es una colección de paquetes de R que comparten una filosofía y API común para el tratamiento de datos de tipo tabular. A los que se les llama "tidy data" (datos ordenados).
La filosofía básica de las funciones de los paquetes del Tidyverse es recibir datos "tidy" y devolver como resultados datos del mismo tipo. Al ser los datos de entrada y salida de las funciones del mismo tipo es posible encadenar diferentes funciones para realizar así tareas complejas de una forma eficiente. Por ejemplo, filtrar, agrupar y obtener los estadistas de un conjunto de datos, tarea que se puede realizar con encadenando tres funciones diferentes.
Ventajas del Tidyverse
El uso del Tidyverse ofrece ciertas ventajas respecto a trabajar solamente con la base de R y algunos paquetes sueltos. Entre las que se puede destacar:
- Los paquetes del Tidyverse se basan en unas convenciones y flujo de trabajo estándar, por lo que una vez que se comprenden los fundamentos es más fácil aprender a usar nuevos paquetes e incluirlos en los flujos de trabajo existentes.
- Muchas estructuras de datos existentes en R se pueden utilizar tal cual en el Tidyverse (como los data.frame) o transformas a un formato adecuado. Lo que facilita el uso del código y procesos ya existentes.
- El uso de las tuberías (pipeline) hacen que cada paso de la manipulación y análisis de datos sea fácil de comprender, incluso para usuarios con poca experiencia en R y el Tidyverse.
- Las tuberías son un ejemplo fantástico de programación funcional, lo que permite comprender y aplicar este paradigma de programación.
Instalación en R
Para acceder al Tidyverse se pueden instalar cada unos de los paquetes que forman parte de este en nuestro entorno de R. Aunque es más fácil instalar el paquete Tidyverse
y este ya instalar todos los paquetes necesarios. Tarea que se puede escribiendo el siguiente comando en una sesión de R:
install.packages("tidyverse")
Ahora se puede cargar el paquete en una sesión de R, lo que producirá una salida como la siguiente:
── Attaching packages ─────── tidyverse 1.3.0 ──
✓ ggplot2 3.3.3 ✓ purrr 0.3.4
✓ tibble 3.0.5 ✓ dplyr 1.0.3
✓ tidyr 1.1.2 ✓ stringr 1.4.0
✓ readr 1.4.0 ✓ forcats 0.5.0
── Conflicts ────────── tidyverse_conflicts() ──
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
No debemos preocuparnos por los conflictos ya que lo único que indica es que las funciones filtre()
y lag()
han reemplazados en la sesión a las de la base de R.
Puede que algunos de estos paquetes ya no suenan porque puede ser que ya llevamos tiempo utilizándolos sin saber que forma parte de Tidyverse. Algo que es bueno ya que nos indicará qué conocemos, por lo menos en parte, la filosofía de este conjunto de paquetes.
Los paquetes del Tidyverse
Tal como se ha visto en la sesión anterior al iniciar el Tidyverse en su versión actual se cargan ocho paquetes. Siendo estos:
-
ggplot2
: permite crear elegantes representaciones de datos, ofreciendo la posibilidad de una personalización extrema de los gráficos. -
tibble
: implementación de una estructura de datos que es una versión moderna y mejorada de los tradicionalesdata.frame
. -
tidyr
: permite realizar transformaciones eficientes de los datos, cómo puede ser la conversión de filas en columnas. -
readr
: facilita la lectura de archivos de texto plano, como es el caso de los archivos CSV. -
purrr
: facilita el trabajo tanto con vectores como con funciones. -
dplyr
: permite la manipulación de los conjuntos de datos utilizando para ello un lenguaje de acciones sobre los mismos. Facilitando las tareas más habituales como son la creación de variables, selección, filtrado, resumen de los datos. -
stringr
: facilita enormemente el trabajo con datos categóricos y cadenas de texto. -
forcats
: contiene múltiples funciones para trabajar con datos categóricos.
Además de estos se pueden encontrar en el CRAN más paquetes que comparten la misma filosofía. Entre los destinados a la lectura de datos podemos destacar: readxl
(Excel) y haven
(SAS o SPSS). Por otro lado, para la manipulación de datos podemos encontrar: lubridate
(fechas), –hms
(horas, minutos, segundos) –y blob
(datos binarios).
Conclusiones
En esta entrada hemos visto una introducción al Tidyverse sabiendo lo que es. Dejando para futuras entradas ejemplos de uso de cada uno de estos paquetes.