Differences between %.% (dplyr) and %>% (magrittr)

dplyr, magrittr, pipe, r

Solution

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

Problem

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.

Original source