age*_*nis 24 r piping dplyr magrittr
我想知道为什么,在中dplyr或magrittr包装,更具体的链接功能%>%有一定的麻烦与基础运营商+,-,*,和/
Chaining获取前一个语句的输出并将其作为下一个语句的第一个参数提供:
1:10 %>% sum
# [55]
Run Code Online (Sandbox Code Playgroud)
那么为什么这不起作用
1:10 %>% *2 %>% sum
1:10 %>% .*2 %>% sum
Run Code Online (Sandbox Code Playgroud)
我还发现以下语法适用于添加/减少,但不能乘法或除法.为什么这样?
1:10 %>% +(2) # works OK
1:10 %>% *(2) # nope...
Run Code Online (Sandbox Code Playgroud)
那么我应该写一个匿名函数甚至*2对我的data.frame 进行操作吗?
1:10 %>% (function(x) x*2) %>% sum
Run Code Online (Sandbox Code Playgroud)
谢谢,我在其他SO问题中找不到答案.
jba*_*ums 37
操作员用反引号或引号包围,事情应按预期工作:
1:10 %>% `*`(2) %>% sum
# [1] 110
1:10 %>% `/`(2) %>% sum
# [1] 27.5
Run Code Online (Sandbox Code Playgroud)
Hen*_*rik 24
或者使用Aliasesin magrittr包,例如:
1:10 %>% multiply_by(2)
# [1] 2 4 6 8 10 12 14 16 18 20
1:10 %>% add(2)
# [1] 3 4 5 6 7 8 9 10 11 12
Run Code Online (Sandbox Code Playgroud)
在Aliases包括"单词"进行布尔运算符,提取/替换,和算术运算符