NSE में चर का नाम dplyr के साथ कैसे प्राप्त करें

Jan 22 2021

इसलिए मैंने इसे प्राप्त करने के लिए कई बार कई अलग-अलग तरीके ढूंढे हैं, लेकिन पिछले साल के अनुसार या तो इस तरह से बदलाव हुए हैं कि dplyr गैर मानक मूल्यांकन को संभालता है। इसे प्राप्त करने का अनिवार्य रूप से एक तरीका इस प्रकार है:

require("dplyr")
test <- function(var){
  mtcars %>% select({{var}})
  print(quo_name(enquo(var)))
}

test(wt)
#> [1] "wt"

क्या 2021 तक इसे प्राप्त करने का अधिक सीधा तरीका है? मैं शपथ ले सकता था कि कुछ बहुत सरल था।

जवाब

2 MatthewSkiffington Jan 22 2021 at 03:42

का प्रयोग करें ensym()से 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

हम उपयोग कर सकते हैं deparse/substituteमेंbase R

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

test(wt)
#[1] "wt"