【发布时间】:2014-10-19 08:47:14
【问题描述】:
我正在运行一些递归深度为 5000 的 R 代码,我收到以下错误:
错误:求值嵌套太深:无限递归/选项(表达式=)?
总结时出错:评估嵌套太深:无限递归/选项(表达式=)?
如何在 R 中设置递归深度?
【问题讨论】:
我正在运行一些递归深度为 5000 的 R 代码,我收到以下错误:
错误:求值嵌套太深:无限递归/选项(表达式=)?
总结时出错:评估嵌套太深:无限递归/选项(表达式=)?
如何在 R 中设置递归深度?
【问题讨论】:
啊。通过阅读错误消息找到它。这会将递归深度设置为 100000
> options(expressions= 100000)
【讨论】:
我试过这个。您可以设置它,然后再次使用“options()”,显示它已设置:
选项(表达式=255) 选项() …… $表达式 [1] 255 ....
但不幸的是,它不起作用。递归以完全相同的方式失败。我尝试从数据中删除许多额外的列,但没有帮助。
我最初使用 for() 循环解决了这个问题,但它大约有 70k 行数据,正如任何有经验的 R 程序员都知道的那样,一旦将 for() 循环与大数据集。
这是 R 版本 3.4.1,在 64 位 Windows 上运行。
【讨论】:
options(expressions=10000); options("expressions")==10000 R 返回 TRUE ...我认为将慢速 for 循环转换为递归实际上根本没有帮助!