6.2 Pipes
El objetivo de usar pipes es hacer el desarrollo de código más fácil de escribir, mas rápido de leer y más sencillo de dar mantenimiento.
Funciona con el operador forwad pipe
%>%
que envía un valor a una función.
La función básica puede verse de la siguiente forma:
x %>% f
equivale af(x)
.x %>% f(y)
equivale af(x, y)
.x %>% f %>% g %>% h
equivale ah(g(f(x)))
.
Colocación de valores en argumentos por posición se realiza con un punto .
:
x %>% f(y, .)
equivale af(y, x)
.x %>% f(y, z = .)
equivale af(y, z = x)
Shortcut
El shortcut de forward pipe%>%
es command/ctrl + shift + m
Ejemplos
Por ejemplo, en una función de un solo argumento.
pordos_fun <- function(base){
base*2
}
# Con operador pipe
4 %>% pordos_fun
## [1] 8
# Equivalente a
pordos_fun(4)
## [1] 8
Una función de dos argumentos, como la que se muestra en el siguiente ejemplo, envía el valor al primer argumento.
porexponente_fun <- function(base, exponente){
base*exponente
}
# Con operador pipe
4 %>% porexponente_fun(exponente = 2)
## [1] 8
# Equivalente a
porexponente_fun(4, 2)
## [1] 8
Otro ejemplo es anidar operaciones a un vector de valores numéricos.
# Con operador pipe
1:10 %>% range() %>% mean() %>% round()
## [1] 6
# Equivalente a
round(mean(range(1:10)))
## [1] 6
El paquete
dplyr
funciona con pipes y esta pensado con una estructura de datos ordenada o tidy.