Dplyr ile NSE'de değişkenin adı nasıl alınır
Jan 22 2021
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 Jan 22 2021 at 03:42
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 Jan 22 2021 at 04:17
Biz kullanabilirsiniz deparse/substitute
içindebase R
test <- function(var) deparse(substitute(var))
test(wt)
#[1] "wt"
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'