3.4 Pipes

El símbolo %>% en el universo tidyverse se llama pipe y está definido dentro del paquete magrittr, el cual es importado por default por todos los paquetes de tidyverse y es por eso que nosotros no tenemos que importarlo de forma explícita.

Los pipes se utilizan para construir una secuencia de múltiples operaciones donde cada operación requiere como primer argumento la salida de la operación anterior. En el ejemplo anterior, la función janitor::clean_names() necesita como primer argumento un data.framey justamente toma el que regresa la función vroom::vroom, después de leer nuestro archivo.

Aunque serán muy comunes para el manejo de nuestros datos, es bueno recordar que los pipes funcionan con otras estructuras de datos y no solamente los tibbles.

# Elegimos 7 números al azar entre 1 y 100 y obtenemos la media
sample(1:100, size = 7) %>% 
  mean()
## [1] 41.71429

Aunque son una herramienta poderosa, no podrán ser usados en todos los casos. En particular, debemos evitar su uso si las funciones dentro del pipe tienen múltiples entradas y múltiples salidas, ya que los pipes se usan cuando es un solo objeto el que está siendo transformado. Además, si se concatena un gran número de operaciones, se recomienda crear objetos intermedios, para que nuestro código sea fácil de leer.