2017-05-25 7 views
0

この質問のバリアントは多く質問されていますが、NSEについても読んでいます。 まだ私はこれを理解することはできません。dplyrで変数として渡す列名

これは簡単です:

library(dplyr) 
data(cars) 

cars %>% 
    group_by(speed) %>% 
    summarise(d = mean(dist)) 

は、今私は、これは動作しませんもちろん

x <- "dist"

を意味するdistの列を渡すために変数xを使用したい:

cars %>% 
    group_by(speed) %>% 
    summarise(d = mean(x)) 

私は要約のSEバージョンを使用します:

cars %>% 
    group_by(speed) %>% 
    summarise_(d = mean(x)) 

[OK]を、仕事なので、私も~を追加する必要はありません。

cars %>% 
    group_by(speed) %>% 
    summarise_(d = ~mean(x)) 

はまだ動作しませんが、代わりにxの使用dist場合:これは動作します

cars %>% 
    group_by(speed) %>% 
    summarise_(d = ~mean(dist)) 

xは使用しません。

cars %>% 
    group_by(speed) %>% 
    summarise_(d = ~mean(~x)) 

これも機能しません。

私は基本的に、この作業をどうやって行うのか、またそれが失敗するのかどうか考えなくても、まったく驚いています。

答えて

2
cars %>% 
    group_by(speed) %>% 
    summarise_each_(funs(mean), vars(matches(x))) 
+0

ありがとうございました!私の問題は、このような何かをしていたということです。% group_by(速度)%>% summarise_(d =〜quantile(dist、c(0.95)、na.rm = T)あなたにもその解決策がありますか? – juwi

+1

最初に引数を指定して関数を定義する傾向があります。 'quantiles < - function(x)quantile(x、.95、na.rm = T)'です。 'cars%>%group_by(speed)%>%summarise_each_(funs(quantiles)、vars(matches(" dist ")))'は、 –

関連する問題