0
這個問題的變體已經被問了很多,我也讀過關於NSE的內容。 但我無法弄清楚這一點。在dplyr中傳遞列名作爲變量
這很簡單:
library(dplyr)
data(cars)
cars %>%
group_by(speed) %>%
summarise(d = mean(dist))
現在我想用變量x傳遞DIST列意味着
x <- "dist"
當然,這並不工作:
cars %>%
group_by(speed) %>%
summarise(d = mean(x))
所以我用SE版總結:
cars %>%
group_by(speed) %>%
summarise_(d = mean(x))
好,不工作,所以我要補充~
還有:
cars %>%
group_by(speed) %>%
summarise_(d = ~mean(x))
仍然無法正常工作,但如果使用dist
代替x
:
cars %>%
group_by(speed) %>%
summarise_(d = ~mean(dist))
該作品,但不使用x。
cars %>%
group_by(speed) %>%
summarise_(d = ~mean(~x))
這也行不通。
我基本上不知道如何使這項工作,或爲什麼失敗。
謝謝!我的問題是,正在做更像這樣的事情:汽車%>% group_by(speed)%>% summarise_(d =〜quantile(dist,c(0.95),na.rm = T)[1])'Do你也有解決方案嗎? – juwi
我傾向於首先用參數定義一個函數,例如分位數< - 函數(x)分位數(x,.95,na.rm = T)'。這樣,'summarise_each'仍然可以運行:'cars%>%group_by(speed)%>%summarise_each_(funs(分位數),vars(matches(「dist」)))' –