首页 > 解决方案 > 在 R API 函数调用中将参数名称设置为变量

问题描述

我正在使用具有以下语法的函数的 R API:

somefun(...)

一个示例调用:

somefun(foo = list(a = 10, b = 20))

由于可以使用此函数设置许多变量(不仅仅是“foo”),如何将“foo”更改为脚本中的变量名?就像是:

x = "foo"    ## or x = "bar", etc
somefun(x = list(a = 10, b = 20))

标签: r

解决方案


可能不是最干净的。您可以使用eval+parse

somefun <- function(...) {
    as.list(match.call())[-1]
}

somefun(foo = list(a = 10, b = 20))
#$foo
#list(a = 10, b = 20)

eval(parse(text=paste0("somefun(", x, " = list(a = 10, b = 20))")))
#$foo
#list(a = 10, b = 20)

推荐阅读