【发布时间】:2014-08-04 17:57:17
【问题描述】:
我正在尝试对列表中的函数求和以创建一个新函数。这对于少数功能来说很容易。这是一个例子:
f <- function(x){x}
g <- function(x){x+1}
现在我们将f 和g 相加。
fg <- function(x){f(x) + g(x)}
但是如果我有 100 个函数要求和,那么这个方法就会变得笨拙。有没有办法从列表中自动创建类似fg 的函数?
【问题讨论】:
-
MrFlick 的回答很好,但是您首先应该问自己为什么/如何最终得到一个溢出堆栈(对不起 :-))的独立小函数。我无法想象 100 个不相关函数的总和有多大意义。也许您可以编写一些递归函数,将所有这些函数合二为一?
-
@Carl 你的直觉是正确的——它们不是不相关的函数。我不确定我是否理解您关于递归的建议。不要为 x+0*a, x+1*a,... 之类的东西定义单独的函数并将它们相加,而是建议我找到函数 x+0*a + x+1*a +... 立即使用某种递归?如果是这样,你知道怎么做吗?
-
你只有向量值的系数?看起来你可以用简单的矩阵代数来做到这一点。
-
@MrFlick 不,我实际上在错误函数中有复杂的表达式......
标签: r functional-programming add