DPLYR :: Manip:文字列名の代わりに文字列引数を使用する方法(COLNAMESを保持)
質問
タイトルは私が欲しいものをかなり説明しています:
:
filter(mtcars, cyl == 8)
.
私は使いたいです:
var <- "cyl"
filter(mtcars, var == 8) # pseudocode
.
のように
mtcars[which(mtcars[,var]==8),]
.
のような機能があることがわかります
starts_with()
しかし、imhoなし、上のどちらのかなり簡単なアプリケーションに本当にスーツを取得していません。
解決
これを試してみてください:
mtcars %>% do(filter(., .[[var]] == 8))
. 他のヒント
eval(substitute(filter(mtcars, var == 8),list(var=as.name(var))))%>%
head(2)
# mpg cyl disp hp drat wt qsec vs am gear carb
# 1 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
# 2 14.3 8 360 245 3.21 3.57 15.84 0 0 3 4
filter(mtcars, get(var, envir=as.environment(mtcars)) == 8) #should also work but not recommended
. do.call
:
do.call(filter, list(mtcars, bquote(.(as.name(var)) == 8)))
. 所属していません StackOverflow