我有一个像这样的功能:
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"
备注
我对表达,引用,声明,电话,姓名没有很好的理解......所以我会很感激与案件相关的解释。
我可以使用其中任何一个(或两者!)base
(substitute
,quote
等)和dplyr
答案(enquo
,quos
等)
答案 0 :(得分:0)
我并不自豪,但必须这样做......
{{1}}