39

dplyrormagrittrパッケージで、より具体的には連鎖関数%>%が基本演算子+-*、 で問題を抱えている理由を理解したいと思います。/

チェーンは、前のステートメントの出力を取得し、次のステートメントの最初の引数としてフィードします。

1:10 %>% sum
# [55]

では、どうしてこれがうまくいかないのか

1:10 %>%  *2 %>% sum
1:10 %>% .*2 %>% sum

また、次の構文は加算/減算には機能しますが、乗算や除算には機能しないこともわかりました。なんでそうなの?

1:10 %>% +(2) # works OK
1:10 %>% *(2) # nope...

*2では、data.frame で操作を行うためにも匿名関数を作成する必要がありますか?

1:10 %>% (function(x) x*2) %>% sum

ありがとう、私は他のSOの質問で答えを見つけることができませんでした.

4

3 に答える 3

57

演算子をバッククォートまたは引用符で囲むと、期待どおりに機能するはずです。

1:10 %>%  `*`(2) %>% sum
# [1] 110

1:10 %>%  `/`(2) %>% sum
# [1] 27.5
于 2014-12-08T18:28:59.373 に答える
45

または、パッケージ内を使用Aliasesします。例:magrittr

1:10 %>% multiply_by(2)
# [1]  2  4  6  8 10 12 14 16 18 20

1:10 %>% add(2)
# [1]  3  4  5  6  7  8  9 10 11 12

Aliasesブール演算子、抽出/置換、および算術演算子の「単語」を含める

于 2014-12-08T18:35:24.137 に答える