【问题标题】:R: wrapper function(fun, parameters) that calls fun with "unrolled" parametersR:使用“展开”参数调用 fun 的包装函数(fun,parameters)
【发布时间】:2013-07-10 15:50:23
【问题描述】:

我想实现一个通用函数:

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))

有什么建议吗?

【问题讨论】:

  • 你在找do.call吗?
  • @agstudy - 为什么不将其发布为答案?
  • @agstudy 我第二个 Dason 这应该是答案...别再偷懒了 ​​:-)
  • @Dason 我发布了一个答案。 dickoa,我从不懒惰提供帮助:)。

标签: r


【解决方案1】:

我想,您正在寻找do.call 用于构造函数调用。

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

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

相当于:

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

【讨论】:

    猜你喜欢
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2011-12-21
    • 2023-04-09
    相关资源
    最近更新 更多