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"
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
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'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı