The dplyr
package introduced the %.%
operator to pass the left hand side as an argument of the function on the right hand side, similar to a *NIX pipe. The magrittr
package is a much more lightweight package that exists to define only that pipe-like operator.
Yet one uses %.%
and the other %>%
.
Is there any difference between the two? Can I just use %>%
even in dplyr
code, or will that cause subtle bugs?
On inspecting the code, they take very different paths early on, so simple eyeball comparison would suggest that they're different. I haven't been able to find anything documented when I search the web for them, nor have I run across anything in the documentation itself.
dplyr now imports %>%
from magrittr and uses it by default. See this answer for details.
Differences include
you can use a .
as placeholder for the left-hand side, e.g.
iris %>% plot(Sepal.Length ~ Sepal.Width, data = .)
%>%
respects (rhs)
, e.g.
1:10 %>% (call("sum"))
1:10 %>% (function(x) x^2 + 2*x)
For a more useful
example of this, see
https://gist.github.com/anonymous/0c69b019d0b4f6ae5050
For single argument function calls, you can omit parens:
"2014-05-18" %>% as.Date