在 RStudio 中调试会抛出错误。

Debugging in RStudio throws error.

我有一个 R 脚本,它没有按照我的预期执行。但是,它一直 运行。为了修复它,我尝试设置一个断点以进入调试模式。

但是当我这样做时,我收到一条错误消息:

debugSource('~/mycode/konfio/Projects/Interest Rates/src/getPARS.R', echo=TRUE)
Error in if (length(funBody[[idx]]) != length(originalFunBody[[idx]]) ||  : 
missing value where TRUE/FALSE needed

我用 Google 搜索了这个错误,但只找到一个 link 没有帮助。如果有人知道如何让我接触调试器,或者我可以在其他地方搜索问题,我将不胜感激。
谢谢你。

RStudio 的断点通过重写您的函数以包含调试代码来工作。导致此问题的最可能原因是 RStudio 中的错误导致它无法重写您的函数。有几种可能的解决方案:

  1. 只删除要调试的语句并将它们放入单独的函数中。在该函数上设置断点并从主脚本中调用它。

  2. 使用基于 browser() 的调试:只需在设置断点的位置添加 browser()(RStudio 的调试器也适用于 R 调试功能)。

  3. 使用更新版本的 RStudio。调试 R 脚本(相对于函数)最近有了很大改进,如果您觉得特别勇敢,可以尝试 daily build.

如果您有时间,请post将您遇到问题的文件内容发送到 RStudio 的support forum;我们想看看是否可以在即将发布的版本中进行修复。