我想了解为什么在 dplyr
或者 magrittr
包中,尤其是链式函数 %>%
与基本运算符 +
、-
、*
和 /
有些问题。
链式操作将前一个语句的输出作为下一个语句的第一个参数输入:
1:10 %>% sum
# [55]
那么为什么这不起作用呢?
1:10 %>% *2 %>% sum
1:10 %>% .*2 %>% sum
我也发现以下语法可以用于加减,但不能用于乘除。为什么呢?
1:10 %>% +(2) # works OK
1:10 %>% *(2) # nope...
那么,即使要在数据框上执行*2
操作,我也应该写一个匿名函数吗?
1:10 %>% (function(x) x*2) %>% sum
谢谢,我在其他SO的问题中找不到答案。
magrittr
еҢ…иҖҢдёҚжҳҜdplyrгҖӮdplyrд»…з”ЁдәҺеӨ„зҗҶж•°жҚ®жЎҶпјҢиҖҢз®ЎйҒ“иҝҗз®—з¬ҰпјҲ%>%
пјүжңҖеҲқжқҘиҮӘmagrittrгҖӮ - talat-2
。所以这是有效的语法。因此,它在这里进行了解析,然后magrittr开始将评估操纵成二元的"-"(x, 2)
表达式。没有一元的“*”或“/”函数,所以这些操作会失败。一旦被引用,它们再次成为有效的语法,相应的函数也就被获取了。 - Spacedman