我正在运行一些递归深度为5000的R代码,但是遇到了以下错误:
错误:评估嵌套太深:无限递归/options(expressions=)? _wrapup期间出错:评估嵌套太深:无限递归/options(expressions=)?
我该如何在R中设置递归深度?
错误:评估嵌套太深:无限递归/options(expressions=)? _wrapup期间出错:评估嵌套太深:无限递归/options(expressions=)?
我该如何在R中设置递归深度?
啊,通过阅读错误信息找到了。这将把递归深度设置为100000。
> options(expressions= 100000)
我尝试过这个方法。你可以设置它,再次使用"options()"命令查看是否已经设置成功:
options(expressions=255) options() .... $expressions [1] 255 ....
但不幸的是,它并没有奏效。递归以完全相同的方式失败。我尝试过从我的数据中剥离许多额外的列,但这并没有帮助。
最初我用for()循环解决了这个问题,但是由于数据集有大约70k行,任何有经验的R程序员都知道,一旦在大数据集中加入for()循环,你就注定要运行非常长的时间。
这是在64位Windows上运行的R版本3.4.1。
options(expressions=10000); options("expressions")==10000
时,R返回TRUE...我不认为将一个慢的for
循环转换成递归实际上会有所帮助! - Ben Bolker