在RStudio中调试会引发错误。

时间:2015-01-19 02:14:54

标签: debugging rstudio

我有一个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搜索了这个错误,但只发现了一个没有帮助的链接。如果有人知道如何使用调试器或其他我可以搜索问题的其他地方,我将不胜感激。
谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

  3. 使用较新版本的RStudio。调试R脚本(而不是函数)最近有了很大改进,如果你感觉特别勇敢,你可以尝试daily build

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