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/substituteiçindebase R

test <- function(var) deparse(substitute(var))

test(wt)
#[1] "wt"