【问题标题】:How do you set the maximum recursion depth in?你如何设置最大递归深度?
【发布时间】:2014-10-19 08:47:14
【问题描述】:

我正在运行一些递归深度为 5000 的 R 代码,我收到以下错误:

错误:求值嵌套太深:无限递归/选项(表达式=)?
总结时出错:评估嵌套太深:无限递归/选项(表达式=)?

如何在 R 中设置递归深度?

【问题讨论】:

    标签: r recursion


    【解决方案1】:

    啊。通过阅读错误消息找到它。这会将递归深度设置为 100000

    > options(expressions= 100000)
    

    【讨论】:

      【解决方案2】:

      我试过这个。您可以设置它,然后再次使用“options()”,显示它已设置:

      选项(表达式=255) 选项() …… $表达式 [1] 255 ....

      但不幸的是,它不起作用。递归以完全相同的方式失败。我尝试从数据中删除许多额外的列,但没有帮助。

      我最初使用 for() 循环解决了这个问题,但它大约有 70k 行数据,正如任何有经验的 R 程序员都知道的那样,一旦将 for() 循环与大数据集。

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

      【讨论】:

      • 为什么只设置为 255?默认值为 5000,它可以设置为 500000。当我运行 options(expressions=10000); options("expressions")==10000 R 返回 TRUE ...我认为将慢速 for 循环转换为递归实际上根本没有帮助!
      猜你喜欢
      • 2019-05-12
      • 2019-01-30
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 2022-12-19
      • 2013-12-01
      • 2016-06-14
      相关资源
      最近更新 更多