dplyr로 NSE에서 변수 이름을 얻는 방법
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"