是否可以使用来自dplyr包的管道来进行数值计算?一个简单的例子是:
0.15 %>% 3.8416 * (.*(1-.))/(0.03^2) #does not work
seq(1,10,1) %>% log(.) %>% .^2 #works
更多地了解管道是如何工作的,以及什么时候可以和不能使用管道。我真的很喜欢使用管道特性,并希望找到一种方法来使用它来进行这些类型的数值计算。
非常感谢
发布于 2017-10-19 18:08:02
您有一个运算符优先问题。它试着从做
0.15 %>% 3.8416
这没道理。您需要将所有计算分组在一个代码块中。
0.15 %>% {3.8416 * (.*(1-.))/(0.03^2)}
发布于 2017-10-19 18:19:49
所有这些都是等价的,第一个需要magrittr
,dplyr
足够用于下一个2:
library(magrittr)
0.15 %>% multiply_by(subtract(1,.)) %>% multiply_by(3.8416) %>% divide_by(0.03^2)
0.15 %>% `*`(`-`(1,.)) %>% `*`(3.8416) %>% `/`(0.03^2)
0.15 %>% {3.8416 * (.*(1-.))/(0.03^2)}
https://stackoverflow.com/questions/46836185
复制相似问题