Dplyr ile NSE'de değişkenin adı nasıl alınır
Bunu başarmak için birçok kez çeşitli farklı yollar buldum, ancak geçen yıl itibariyle dplyr'in standart olmayan değerlendirmeyi ele alma biçiminde değişiklikler oldu. Esasen bunu başarmanın bir yolu şu şekildedir:
require("dplyr")
test <- function(var){
mtcars %>% select({{var}})
print(quo_name(enquo(var)))
}
test(wt)
#> [1] "wt"
Bunu 2021 itibariyle başarmanın daha doğrudan bir yolu var mı? Çok daha basit bir şey olduğuna yemin edebilirdim.
Yanıtlar
2 MatthewSkiffington
Kullan ensym()
dan 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
Biz kullanabilirsiniz deparse/substitute
içindebase R
test <- function(var) deparse(substitute(var))
test(wt)
#[1] "wt"
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'