【发布时间】:2013-09-15 11:17:45
【问题描述】:
我想添加一些函数 f1,f2,...,fn 以便我有一个新函数产生 f(x)=f1(x)+...+fn(x)(称为逐点加法)。所以我有一个功能列表并尝试过
Reduce("funadd",fun.list)
其中 funadd 定义为
funadd <- function(f1,f2){
retfun <- function(x){
f1(x)+f2(x)
}
retfun
}
在两个函数上测试 funadd 时,它可以完美运行。但是,当我尝试评估 Reduce 命令的结果时,我得到了错误
Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
【问题讨论】:
-
只是说这是一种对函数求和的非常低效的方法。您的 sum 函数将需要 n-1 个额外的函数调用,这在 R 中非常耗时。