Я написал рекурсивную функцию вида
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
, как я, и если мне нужно изменить что-то еще вместе с ним.