Cara mendapatkan nama variabel di NSE dengan dplyr
Jadi saya telah menemukan berkali-kali berbagai cara berbeda untuk mencapai ini, tetapi selama setahun terakhir ini telah ada perubahan pada cara dplyr menangani evaluasi non standar. Pada dasarnya salah satu cara untuk mencapai ini adalah sebagai berikut:
require("dplyr")
test <- function(var){
mtcars %>% select({{var}})
print(quo_name(enquo(var)))
}
test(wt)
#> [1] "wt"
Apakah ada cara yang lebih langsung untuk mencapai ini pada tahun 2021? Aku berani bersumpah ada sesuatu yang lebih sederhana.
Jawaban
2 MatthewSkiffington
Gunakan ensym()
dari 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
Kita bisa gunakan deparse/substitute
dalambase R
test <- function(var) deparse(substitute(var))
test(wt)
#[1] "wt"
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'