【问题标题】:R: Error in fBody[[i]] : no such index at level 4R:fBody[[i]] 中的错误:4 级没有这样的索引
【发布时间】:2015-09-15 23:04:58
【问题描述】:

R 中的调试模式有时会抛出以下错误:

     Error in fBody[[i]] : no such index at level 4

这是什么原因造成的?又该如何避免呢?

【问题讨论】:

  • 我不确定我们是否有足够的信息来提供适当的建议。您使用的是哪种调试器? RStudio调试模式也许?您是在调用 browser()、debugonce()、在崩溃或其他方法后恢复跟踪吗?一个可重现的例子会有很长的路要走。
  • 我正在使用 RStudio debugSource()。不幸的是,我现在很难建立一个例子,不过我会尝试做一个。
  • 你不需要一个例子。这是 RStudio 中非常常见的问题。

标签: r debugging error-handling


【解决方案1】:

您可能想要检查每个单独的元素并确保它的长度为 1。在我的情况下,我有 c <- (1:23) fit[[c]]$results["Accuracy"] 其中一些长度为 1,但在索引 3 处长度 > 1

fit[[3]] 我有以下...

准确度

1 0.7764711

2 0.7771532

所以我将max(fit[[3]]$results["Accuracy"]) 用于长度大于一的那些,然后是平均函数。

【讨论】:

    【解决方案2】:

    在mac上,我通常使用:

    1. 保存文件
    2. 调试->清除所有断点。

    即使不重新启动 RStudio 也有帮助

    【讨论】:

    • Step-2 和 step-1 分别适用于 macOS。
    【解决方案3】:
    1. 无断点保存文件
    2. 会话 -> 重启 R

    通常对我有用...

    【讨论】:

    • 在 Windows 中像魅力一样工作!
    【解决方案4】:

    这是 RStudio 中的一个错误。我在编写 R 代码时经常得到它。这就是我一直做和工作的全部:

    1. 重新启动 RStudio
    2. 清除所有断点(有一个菜单)
    3. 剪切整个源代码,即要调试的文件。保存空文件。
    4. 粘贴源代码。保存它。

    该错误与断点的位置有关。出于某种原因,RStudio 将新断点与其他东西混淆了。通过剪切和粘贴源代码,我们迫使 RStudio “忘记”旧的断点并开始刷新。这就像给 RStudio 一个新文件。

    现在,您可以再次运行调试会话。

    RStudio 开发人员,修复这个愚蠢的错误。

    【讨论】:

    • 请注意,自提出问题以来已超过一年,并且该错误仍然存​​在。
    • RStudio 1.0.136 中仍然存在错误。谢天谢地,这个解决方案仍然有效。
    • 在新版本中,看起来简单的清除断点和重新采购就足够了
    • 运行 RStudio 1.2.1335 对我来说不起作用。我不敢相信这个错误能做到这一点。这令人难以置信的烦人。
    猜你喜欢
    • 2016-04-03
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多