1

我想实现一个通用功能:

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

它使用参数列表调用给定的函数func(作为参数给出),因此 func 一定不能处理泛型参数(如 ...)。作为回电

例如调用:mean(x=1:4, na.rm=TRUE)as

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

有什么建议么?

4

1 回答 1

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)
于 2013-07-10T16:27:52.753 回答