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
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'