将点名称更改为字符

时间:2017-11-14 16:58:58

标签: r names ellipsis

我有一个像这样的功能:

my_fun <- function(...,x,y){
  list(...)
}

我希望能够将变量名称或字符串提供给省略号,并在返回之前将所有字符串转换为字符。在我的实际案例中,我将通过do.call(custom_fun,list(...))调用自定义函数。

预期输出

我在这里问的是一个函数my_fun2会有以下行为:

my_fun2 <- function(...,x,y){
  MAGIC(list(...))
}

identical(my_fun("a",foo= "b == 3",c("c","d"),bar=c("e","f"),c("g","h")),
          my_fun2("a",foo= b == 3,c("c","d"),bar = c("e",f),c(g,h)))

应为TRUE且两个字词都会返回:

# [[1]]
# [1] "a"
# 
# $foo
# [1] "b == 3"
# 
# [[3]]
# [1] "c" "d"
# 
# $bar
# [1] "e" "f"
# 
# [[5]]
# [1] "g" "h"

我尝试了什么......

my_fun2 <- function(...,x,y){
 lapply(pryr::dots(...),as.character)
}

my_fun2("a",b == 3,c("c","d"),c("e",f),c(g,h))
# [[1]]
# [1] "a"
# 
# [[2]]
# [1] "==" "b"  "3" 
# 
# [[3]]
# [1] "c" "c" "d"
# 
# [[4]]
# [1] "c" "e" "f"
# 
# [[5]]
# [1] "c" "g" "h"

备注

我对表达,引用,声明,电话,姓名没有很好的理解......所以我会很感激与案件相关的解释。

我可以使用其中任何一个(或两者!)basesubstitutequote等)和dplyr答案(enquoquos等)

1 个答案:

答案 0 :(得分:0)

我并不自豪,但必须这样做......

{{1}}