在 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 中的错误导致它无法重写您的函数。有几种可能的解决方案:
只删除要调试的语句并将它们放入单独的函数中。在该函数上设置断点并从主脚本中调用它。
使用基于 browser()
的调试:只需在设置断点的位置添加 browser()
(RStudio 的调试器也适用于 R 调试功能)。
使用更新版本的 RStudio。调试 R 脚本(相对于函数)最近有了很大改进,如果您觉得特别勇敢,可以尝试 daily build.
如果您有时间,请post将您遇到问题的文件内容发送到 RStudio 的support forum;我们想看看是否可以在即将发布的版本中进行修复。
我有一个 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 中的错误导致它无法重写您的函数。有几种可能的解决方案:
只删除要调试的语句并将它们放入单独的函数中。在该函数上设置断点并从主脚本中调用它。
使用基于
browser()
的调试:只需在设置断点的位置添加browser()
(RStudio 的调试器也适用于 R 调试功能)。使用更新版本的 RStudio。调试 R 脚本(相对于函数)最近有了很大改进,如果您觉得特别勇敢,可以尝试 daily build.
如果您有时间,请post将您遇到问题的文件内容发送到 RStudio 的support forum;我们想看看是否可以在即将发布的版本中进行修复。