R:使用“展开”参数调用fun的包装函数(fun,parameters)

时间:2013-07-10 15:50:24

标签: r

我想实现一个通用函数:

call_with_parameters <- function(func, parameters) {
    call func with parameters and return result
}

使用参数列表调用给定函数 func (作为参数给出),因此func必须无法处理泛型参数(如... )。作为回复电话

例如,将mean(x=1:4, na.rm=TRUE)称为

call_with_parameters(mean, list(x=1:4, na.rm=TRUE))

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

我认为,您正在寻找do.call来构建函数调用。

该函数构造调用并立即对其进行评估(您也可以使用call来构造调用,并稍后使用eval(例如)对其进行评估。 do.call接受论证 来自模式“list”的对象,其中包含要评估的函数的所有参数。例如:

do.call("mean", list(x=1:4,na.rm=TRUE))

相当于:

mean(x=1:4,na.rm=TRUE)