字符向量到省略号输入

时间:2019-11-26 16:23:31

标签: r rlang

我具有以下函数,该函数接受未引用的输入并返回输入对象的字符向量。

my_function <- function(...) {

  v_chr <- purrr::map_chr(rlang::enexprs(...), rlang::as_name)
  v_chr

}

my_function(apple, orange)
"apple" "orange" 

我正在尝试围绕它构建一个包装,该包装接受字符向量输入。这是行不通的。

my_wrapper <- function(v_chr) {

  x <- rlang::syms(v_chr) 
  my_function(x)

}

v_chr <- c("apple", "orange")
my_wrapper(v_chr)
"x"

问题

  1. 如何让my_wrapper()返回与my_function()相同的输出?
  2. 奖金:my_function()中是否有更简化的方法来达到结果?

我希望该解决方案使用rlang,但不介意再看到基本解决方案。

1 个答案:

答案 0 :(得分:1)

您的包装应该看起来像

delz

您需要使用bang-bang-bang运算符将这些符号注入到呼叫中,然后使用my_wrapper <- function(v_chr) { x <- rlang::syms(v_chr) rlang::eval_tidy(my_function(!!!x)) } 对其进行评估,因为“正常”的R函数无法识别eval_tidy

相关问题