我寫形式說明的R:
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
,並且我應該修改其他參數。