Come ottenere il nome della variabile in NSE con dplyr
Quindi ho trovato molte volte diversi modi per raggiungere questo obiettivo, ma nell'ultimo anno circa ci sono stati cambiamenti nel modo in cui dplyr gestisce la valutazione non standard. Essenzialmente un modo per ottenere questo risultato è il seguente:
require("dplyr")
test <- function(var){
mtcars %>% select({{var}})
print(quo_name(enquo(var)))
}
test(wt)
#> [1] "wt"
Esiste un modo più diretto per raggiungere questo obiettivo a partire dal 2021? Avrei giurato che c'era qualcosa di molto più semplice.
Risposte
2 MatthewSkiffington
Utilizzare ensym()
da 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
Possiamo usare deparse/substitute
inbase R
test <- function(var) deparse(substitute(var))
test(wt)
#[1] "wt"