3

magrittr のパイプを使用して次のコードを書き直したい:

max(diff(which(diff(runif(50)) > 0 )))

私の簡単なアプローチは次のとおりです。

library(magrittr)
runif(50) %>% diff > 0 %>% which %>% diff %>% max

しかし、これは (最初の) whichが原因で失敗します:

runif(50) %>% diff > 0 %>% which

which(.) のエラー: 'which' の引数が論理的ではありません

このエラーが発生する理由と、「diff > 0」の出力が論理ベクトルであるため、パイプが他の関数へのパイプと異なるように見える理由がわかりません。

余談ですが、率直に言って、比較のためにパイプする方法はありますか

 runif(50) %>% diff %>% > 0 
4

2 に答える 2

6

試す:

runif(50) %>% diff %>% `>`(0) %>% which %>% diff %>% max

編集:おそらく、それらは引用符ではなくバッククォートであることを指摘する必要があります。

于 2016-01-29T12:06:34.213 に答える