dplyr
またはmagrittr
パッケージ、より具体的には連鎖関数%>%
で、基本演算子+
、-
、*
、および/
に問題がある理由を理解したいと思います。
連鎖は、前のステートメントの出力を受け取り、それを次の引数の最初の引数としてフィードします。
1:10 %>% sum
# [55]
したがって、なぜこれが機能しないのですか?
1:10 %>% *2 %>% sum
1:10 %>% .*2 %>% sum
また、次の構文は加算/減算には機能しますが、乗算や除算には機能しないこともわかりました。なぜそうなのか?
1:10 %>% +(2) # works OK
1:10 %>% *(2) # nope...
では、data.frameで*2
操作を実行する場合でも、匿名関数を作成する必要がありますか?
1:10 %>% (function(x) x*2) %>% sum
おかげで、私は他のSO質問で答えを見つけることができませんでした。
演算子をバッククォートまたは引用符で囲むと、期待どおりに機能するはずです。
1:10 %>% `*`(2) %>% sum
# [1] 110
1:10 %>% `/`(2) %>% sum
# [1] 27.5
または、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
には、ブール演算子、抽出/置換、および算術演算子の「単語」が含まれます