I would like to understand why, in the the dplyr
or magrittr
package, and more specifically the chaining function %>%
has some trouble with the basic operators +
, -
, *
, and /
Chaining takes the output of previous statement and feeds it as first argument of the next:
1:10 %>% sum
# [55]
Thus how come this doesn't work
1:10 %>% *2 %>% sum
1:10 %>% .*2 %>% sum
I also found that the following syntax works for adding/substracting, but not multiply or divide. why so?
1:10 %>% +(2) # works OK
1:10 %>% *(2) # nope...
So should I write an anonymous function even to do a *2
operation on my data.frame?
1:10 %>% (function(x) x*2) %>% sum
Thanks, I couldn't find the answer in other SO questions.
Surround the operators with backticks or quotes, and things should work as expected:
1:10 %>% `*`(2) %>% sum
# [1] 110
1:10 %>% `/`(2) %>% sum
# [1] 27.5