Capítulo 2 El Tidyverso

“Tidyverso” proviene de la palabra en inglés Tidyverse, y a su vez el prefijo “tidy”, significa ordenado. Tidyverse esta conformado por un grupo de paquetes que comparten una misma filosofía acerca de los datos y programación en R (Wickham, 2014; Wickham et al., 2019b).

Los paquetes que conforman al Tidyverse son readr, dplyr, tidyr, ggplot2, purrr, forcats, stringr, lubridate y tibble. Cada uno de estos paquetes mencionados se instalarán automáticamente al instalar el paquete tidyverse.

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4          ✔ readr     2.1.4.9000
## ✔ forcats   1.0.0          ✔ stringr   1.5.1     
## ✔ ggplot2   3.4.4          ✔ tibble    3.2.1     
## ✔ lubridate 1.9.3          ✔ tidyr     1.3.0     
## ✔ purrr     1.0.2          
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Ahora hablaremos algunos de estos paquetes, ya que el objetivo del libro no es basarnos en hablar sobre el mundo del tidyverso, si no, de un paquete específico que es ggplot2. En la parte 2 y sección 5 de este libro electrónico (https://bookdown.org/ansellbr/WEHI_tidyR_course_book/manipulating-data-with-dplyr.html), puede ayudarte a entender un poco más sobre su funcionalidad de dichos paquetes, ya mencionados.

2.1 readr

Este paquete permite importar y exportar distintos tipos de archivos. Si lo menciono primero, es porque lo estaremos utilizando muchas veces para leer nuestros datos. Si queremos importar un dato utilizaremos la función read_"tipo de dato" (csv, tsv, log, etc.), pero si queremos exportar ese mismo dato utilizaremos la función write_"tipo de dato" (csv, tsv, etc.) (Wickham, Çetinkaya-Rundel, et al., 2023).

2.2 dplyr

Es un paquete de múltiples funciones que actúan en la manipulación de datos. Dichas funciones se les conocen como “verbos”, que pueden juntarse para obtener un resultado de interés (Peng, 2016; Wickham, Çetinkaya-Rundel, et al., 2023).

Estos “verbos” son

  • select: Selecciona columnas, es decir las variables de tus datos.
  • filter: Si el anterior seleccionaba filas, esta función se encarga de seleccionar un subconjunto de filas, según la condición que le indiques. Aquí se utilizan operadores lógicos (&,!) y operadores relacionales (<, >, ==).
  • arrange: Permite reordenar las filas para cierta variable. Para que tus filas se ordenen de manera descendente, necistas adicionar el operador desc(), y si no agregas nada, el orden de tus datos serán de manera ascendente.
  • rename: Te permite cambiar el nombre de las variables de tus datos originales.
  • mutate: Permite agregar variables a partir de otra variable original de tus datos. Esta es una de las funciones de mucha utilidad.
  • summarise: Nos permite generar datos estadísticos como la media(mean), desviación estándar(sd) a partir de tus datos originales.
  • pipeline (%>% o |> ): Este operador te permite enlazar los “verbos” de dplyr.

2.3 tidyr

Permite crear datos ordenados, siendo las funciones principales pivot_longer y pivot_wider. La primera función transforma un dato ancho a uno largo, en cambio la otra función hace lo contrario(Wickham, Vaughan, et al., 2023a).

2.4 purrr

Genera bucles(loops) a travez de la familia de funciones llamadas map(). Estos bucles ayudan a realizar una acción de interés múltiples veces, generados por la computadora (Wickham & Henry, 2023a).

2.5 tibbles

Es un data frame pero modernizado y mejorado. Las ventajas con la data frame es que nunca altera el tipo de entrada, los vectores de tipo cadena de texto no esta obligado a cambiar al tipo factor, muestra las primeras filas y todas las columnas de tus datos, entre otras carácterísticas (Wickham, Çetinkaya-Rundel, et al., 2023).

2.6 ggplot2

Es uno de los paquetes del tidyverso que te permite generar gráficos elegantes y manejables. Su popularidad se debe a que todos los gráficos se generan a travez de un sistema coherente conocido como la gramática de gráficos (Wickham, Çetinkaya-Rundel, et al., 2023). Esta “gramática de gráficos” es como una plantilla ordenada, y si resaltó esta última palabra es porque ggplot2 genera las figuras mediante capas (Figura 2.1).

_Gramática de gráficos de ggplot2_

Figure 2.1: Gramática de gráficos de ggplot2

Te cuento una curiosidad, el paquete ggplot2 tiene dos funciones para crear gráficos que son qplot() y ggplot(), sin embargo, en este libro utilizaremos ggplot(), porque es más flexible y a la vez robusto para generar los gráficos.

References

Peng, R. D. (2016). R programming for data science (pp. 86–181). Leanpub. http://leanpub.next/rprogramming
Wickham, H. (2014). Tidy data. The Journal of Statistical Software, 59. http://www.jstatsoft.org/v59/i10/
Wickham, H., Averick, M., Bryan, J., Chang, W., McGowan, L., François, R., Grolemund, G., Hayes, A., Henry, L., Hester, J., Kuhn, M., Pedersen, T., Miller, E., Bache, S., Müller, K., Ooms, J., Robinson, D., Seidel, D., Spinu, V., … Yutani, H. (2019b). Welcome to the tidyverse. Journal of Open Source Software, 4(43), 1686. https://doi.org/10.21105/joss.01686
Wickham, H., Çetinkaya-Rundel, M., & Grolemund, G. (2023). R for data science (Second). " O’Reilly Media, Inc.". https://r4ds.hadley.nz/
Wickham, H., & Henry, L. (2023a). Purrr: Functional programming tools. https://purrr.tidyverse.org/
Wickham, H., Vaughan, D., & Girlich, M. (2023a). Tidyr: Tidy messy data. https://tidyr.tidyverse.org