我有一个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搜索了这个错误,但只发现了一个没有帮助的链接。如果有人知道如何使用调试器或其他我可以搜索问题的其他地方,我将不胜感激。
谢谢。
答案 0 :(得分:1)
RStudio的断点通过重写函数来包含调试代码来工作。导致此问题的最可能原因是RStudio中的一个错误导致它无法重写您的函数。有几种可能的解决方案:
只删除要调试的语句并将它们放入单独的函数中。在该函数上设置断点并从主脚本中调用它。
使用基于browser()
的调试:只需添加browser()
就可以设置断点(RStudio的调试器也适用于R调试功能)。
使用较新版本的RStudio。调试R脚本(而不是函数)最近有了很大改进,如果你感觉特别勇敢,你可以尝试daily build。
如果您有时间,请将您遇到问题的文件内容发布到RStudio的support forum;我们想看看我们是否可以在即将推出的版本中修复。