我想用magrittr的管道重写以下代码:
max(diff(which(diff(runif(50)) > 0 )))我直截了当的做法是:
library(magrittr)
runif(50) %>% diff > 0 %>% which %>% diff %>% max但是由于(第一个)
runif(50) %>% diff > 0 %>% which错误,其中(.):参数指向“哪个”不符合逻辑
我不知道为什么会发生此错误,以及为什么管道与管道与其他函数不同,因为"diff > 0“的输出是一个逻辑向量。
直截了当地说,在一个侧面,会有什么方法来进行比较吗?
runif(50) %>% diff %>% > 0 发布于 2016-01-29 12:06:34
尝试:
runif(50) %>% diff %>% `>`(0) %>% which %>% diff %>% max编辑:应该指出,这些是后排,而不是引号。
发布于 2017-06-30 12:28:19
我相信您的问题字符串被解析为等价于:
(runif(50) %>% diff) > (0 %>% which %>% diff %>% max)它返回相同的错误。
另一方面,除了已经提出的建议外,这些建议也很好:
runif(50) %>% {diff(.) > 0} %>% which %>% diff %>% max
(runif(50) %>% diff > 0) %>% which %>% diff %>% maxhttps://stackoverflow.com/questions/35084087
复制相似问题