Come ottenere il nome della variabile in NSE con dplyr
Jan 22 2021
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 Jan 22 2021 at 03:42
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 Jan 22 2021 at 04:17
Possiamo usare deparse/substitute
inbase R
test <- function(var) deparse(substitute(var))
test(wt)
#[1] "wt"