如果指定,R仅指定可选参数

时间:2017-11-14 19:53:40

标签: r

我有一个带有可选参数的R函数,如下所示:

myFunc <- function(
    requiredParam,
    optionalParam1 = optionalValue1,
    optionalParam2 = optionalValue2,
    ...
    optionalParamN = optionalValueN) {
    # implementation
}

我有另一个调用此函数的函数,并具有存储在数据帧中的必要参数:

  optionalParam1 optionalParam3 optionalParam10
1         "val1"         "val2"          "val3"

我只想传递数据框中指定的可选参数。对于其他人,我希望它使用默认值。如何在不输入现有/不存在的OptionalParameters的所有排列的情况下完成此操作?

2 个答案:

答案 0 :(得分:2)

使用do.call调用函数(不知道你的data.frame被调用了什么我会假设你有一个列表或一些名为myParams的参数):

do.call(myFunc, as.list(myParams))

答案 1 :(得分:0)

您还可以通过解析数据框列名并使用paste将函数调用构建为字符串。

然后,使用eval(parse(text="your string"))