【发布时间】:2014-03-27 00:23:35
【问题描述】:
我写了一个形式的递归函数
foo=function(vars,i=2){
**do something with vars**
if(i==length(vars)){
return(**something**)
}else{
foo(vars,i+1)
}
}
length(vars) 大约是 1500。当我执行它时,我得到了错误
Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
Error during wrapup: evaluation nested too deeply: infinite recursion / options(expressions=)?
还不错,所以我加了
options(expressions=10000)
然后就可以了。
但是当我阅读options 的关于expressions= 的帮助文档时,我就是不明白它在说什么。此外,它建议
...如果你增加它,你可能还想用一个更大的开始 R 保护栈;...
那么有人能告诉我发生了什么吗,我是否应该像我一样增加expressions 参数,以及我是否应该连同它一起修改其他东西。
【问题讨论】:
标签: r recursion stack-overflow