Como obter o nome da variável em NSE com dplyr
Então, eu descobri muitas vezes várias maneiras diferentes de fazer isso, mas desde o ano passado, houve mudanças na maneira como o dplyr lida com a avaliação não padrão. Essencialmente, uma maneira de conseguir isso é a seguinte:
require("dplyr")
test <- function(var){
mtcars %>% select({{var}})
print(quo_name(enquo(var)))
}
test(wt)
#> [1] "wt"
Existe uma maneira mais direta de conseguir isso a partir de 2021? Eu poderia jurar que havia algo muito mais simples.
Respostas
2 MatthewSkiffington
Use ensym()
de 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
Podemos usar deparse/substitute
embase R
test <- function(var) deparse(substitute(var))
test(wt)
#[1] "wt"
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?