Как получить имя переменной в NSE с помощью dplyr
Jan 22 2021
Так что я много раз находил различные способы добиться этого, но примерно за последний год произошли изменения в способе обработки нестандартной оценки в dplyr. По сути, один из способов добиться этого заключается в следующем:
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/substitute
вbase R
test <- function(var) deparse(substitute(var))
test(wt)
#[1] "wt"