我想用magrittr的管道重写以下代码:
max(diff(which(diff(runif(50)) > 0 )))
Run Code Online (Sandbox Code Playgroud)
我直截了当的做法是:
library(magrittr)
runif(50) %>% diff > 0 %>% which %>% diff %>% max
Run Code Online (Sandbox Code Playgroud)
但这种失败是由于(第一),其中:
runif(50) %>% diff > 0 %>% which
Run Code Online (Sandbox Code Playgroud)
错误,其中(.):'which'的参数不合逻辑
我不确定为什么会发生这种错误以及为什么管道与管道连接到其他函数不同,因为"diff> 0"的输出是一个逻辑向量.
在旁注中,直言不讳地说,是否有办法进行比较
runif(50) %>% diff %>% > 0
Run Code Online (Sandbox Code Playgroud)
谢谢你的建议!
尝试:
runif(50) %>% diff %>% `>`(0) %>% which %>% diff %>% max
Run Code Online (Sandbox Code Playgroud)
编辑:应该指出那些是反引号,而不是引号.
归档时间: |
|
查看次数: |
289 次 |
最近记录: |