El operador pipe %>%
El operador pipeline %>% es útil para concatenar múltiples dplyr operaciones. Obsérvese en el siguiente ejemplo, que cada vez que queremos aplicar mas de una función, la instrucción es una secuencia de llamadas a funciones de forma anidada y que resulta ilegible:
third(second(first(x)))
Este anidamiento no es una forma natural de expresar un secuencia de operaciones. El operador %>% nos permite escribir una secuencia de operaciones de izquierda a derecha:
first(x) %>% second(x) %>% third(x)
Obsérvese que las siguientes instrucciones,
select(storms, storm, pressure)
## Source: local data frame [6 x 2]
##
## storm pressure
## (chr) (int)
## 1 Alberto 1007
## 2 Alex 1009
## 3 Allison 1005
## 4 Ana 1013
## 5 Arlene 1010
## 6 Arthur 1010
filter(storms, wind >= 50)
## Source: local data frame [3 x 4]
##
## storm wind pressure date
## (chr) (int) (int) (date)
## 1 Alberto 110 1007 2000-08-03
## 2 Allison 65 1005 1995-06-03
## 3 Arlene 50 1010 1999-06-11
es lo mismo que,
storms %>% select(storm, pressure)
## Source: local data frame [6 x 2]
##
## storm pressure
## (chr) (int)
## 1 Alberto 1007
## 2 Alex 1009
## 3 Allison 1005
## 4 Ana 1013
## 5 Arlene 1010
## 6 Arthur 1010
storms %>% filter(wind >= 50)
## Source: local data frame [3 x 4]
##
## storm wind pressure date
## (chr) (int) (int) (date)
## 1 Alberto 110 1007 2000-08-03
## 2 Allison 65 1005 1995-06-03
## 3 Arlene 50 1010 1999-06-11
Es en el siguiente ejemplo donde podemos observar el verdadero potencial del operador pipeline:
storms %>%
filter(wind>=50) %>%
select(storm, pressure)
## Source: local data frame [3 x 2]
##
## storm pressure
## (chr) (int)
## 1 Alberto 1007
## 2 Allison 1005
## 3 Arlene 1010
El atajo de teclado para el operador %>% es