dplyrを使用してNSEで変数の名前を取得する方法
そのため、これを実現するためのさまざまな方法を何度も見つけましたが、昨年かそこらの時点で、dplyrが非標準の評価を処理する方法に変更がありました。これを実現するための基本的な1つの方法は、次のとおりです。
require("dplyr")
test <- function(var){
mtcars %>% select({{var}})
print(quo_name(enquo(var)))
}
test(wt)
#> [1] "wt"
2021年の時点でこれを達成するためのより直接的な方法はありますか?もっと簡単なことがあると誓ったかもしれません。
回答
2 MatthewSkiffington
使用ensym()
からrlang
:
require("dplyr")
require("rlang")
test <- function(var){
mtcars %>% select({{var}})
print(ensym(var))
}
test(wt)
#>wt
as.character(test(wt))
#>wt
#>[1] "wt"
akrun
私たちは、使用することができますdeparse/substitute
でbase R
test <- function(var) deparse(substitute(var))
test(wt)
#[1] "wt"