dplyrを使用してNSEで変数の名前を取得する方法

Jan 22 2021

そのため、これを実現するためのさまざまな方法を何度も見つけましたが、昨年かそこらの時点で、dplyrが非標準の評価を処理する方法に変更がありました。これを実現するための基本的な1つの方法は、次のとおりです。

require("dplyr")
test <- function(var){
  mtcars %>% select({{var}})
  print(quo_name(enquo(var)))
}

test(wt)
#> [1] "wt"

2021年の時点でこれを達成するためのより直接的な方法はありますか?もっと簡単なことがあると誓ったかもしれません。

回答

2 MatthewSkiffington Jan 22 2021 at 03:42

使用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 Jan 22 2021 at 04:17

私たちは、使用することができますdeparse/substitutebase R

test <- function(var) deparse(substitute(var))

test(wt)
#[1] "wt"