2017-10-19 3 views
0

dplyrパッケージの配管を数値計算に使用できますか?簡単な例は次のとおりです。 dplyr配管コマンドを使用した数値計算

0.15 %>% 3.8416 * (.*(1-.))/(0.03^2) #does not work 
    seq(1,10,1) %>% log(.) %>% .^2  #works 

抱き合わせ

がどのように配管の作品の多くを理解したときにそれができると使用することはできません。私は実際に配管機能を使用するのを楽しんで、これらのタイプの数値計算にそれを使用する方法を見つけたいと思っています。

多くのありがとう

+1

パイピングがあります'magplytr'パッケージから、' dplyr'パッケージからではありません。私は[readme](https://github.com/tidyverse/magrittr)を見てみることをお勧めします。 – Gregor

+1

しかし、また、物事をより明確かつ読みやすくするためにパイプを使用してください。それがそれのためのものです。あなたの最初の例は物事を読みにくくします。 – Gregor

+0

配管がどのパッケージから来ているのかを明確にしていただきありがとうございます.Gregorとの同意は、配管を常に使いやすくするために使用することに同意します – EDennnis

答えて

4

オペレータの優先順位の問題があります。

0.15 %>% 3.8416 

これは意味がありません。あなたはこれらのすべては、あなたが最初のもののためにmagrittrを同等の必要がありますされている

0.15 %>% {3.8416 * (.*(1-.))/(0.03^2)} 
+0

これは私が探していたものです。返信してくれてありがとう。 – EDennnis

2

コードブロック内のグループにすべての計算を必要とする、dplyrは、次の2のために十分である:

library(magrittr) 
0.15 %>% multiply_by(subtract(1,.)) %>% multiply_by(3.8416) %>% divide_by(0.03^2) 
0.15 %>% `*`(`-`(1,.)) %>% `*`(3.8416) %>% `/`(0.03^2) 
0.15 %>% {3.8416 * (.*(1-.))/(0.03^2)} 
+1

データまたは計算コマンド(除算、乗算など)のいずれかを通過させたい場合に、数値解析を実行する配管コマンドの柔軟性を実証していただき、ありがとうございます。 – EDennnis

関連する問題