如何设置最大递归深度?

8
我正在运行一些递归深度为5000的R代码,但是遇到了以下错误:
错误:评估嵌套太深:无限递归/options(expressions=)? _wrapup期间出错:评估嵌套太深:无限递归/options(expressions=)?
我该如何在R中设置递归深度?
2个回答

14

啊,通过阅读错误信息找到了。这将把递归深度设置为100000。

> options(expressions= 100000)

-1

我尝试过这个方法。你可以设置它,再次使用"options()"命令查看是否已经设置成功:

options(expressions=255) options() .... $expressions [1] 255 ....

但不幸的是,它并没有奏效。递归以完全相同的方式失败。我尝试过从我的数据中剥离许多额外的列,但这并没有帮助。

最初我用for()循环解决了这个问题,但是由于数据集有大约70k行,任何有经验的R程序员都知道,一旦在大数据集中加入for()循环,你就注定要运行非常长的时间。

这是在64位Windows上运行的R版本3.4.1。


为什么你将它设置为只有255?默认值是5000,可以设置为最大500000。当我运行options(expressions=10000); options("expressions")==10000时,R返回TRUE...我不认为将一个慢的for循环转换成递归实际上会有所帮助! - Ben Bolker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接