如果有的话,R IDE(例如StatET,Revolution R,RStudio,ESS,NppToR等)支持条件断点?
可以通过bp
包中的debug
或基于条件调用browser()
的其他代码来获取。但是,能够切换特定行#并快速输入该特定行的条件断点可能更有效,而无需额外的代码或控制台活动。
注意1.我已经搜索了一些这些,似乎RStudio中没有条件断点,我认为对于StatET也是如此。 ESS似乎有支持(见this page),虽然我还不熟悉ess-tracebug以及它是否易于使用。它似乎也适用于旧版本的ESS;我还不熟悉更新版本的功能。
更新1.我正在选择一个答案(唯一一个--Andrie's)。关于任何 IDE是否支持条件断点的问题是可以回答的,幸运的是,Andrie已经证明存在一个解决方案。我仍然对支持这一点的任何其他IDE感兴趣,尽管Eclipse现在已经足够好了。 (目前,我更喜欢Rstudio,但这已经在他们的功能请求列表中了。)如果任何人都具备ESS的专业知识并且可以展示该功能,我相信它会使在这个问题上发生的其他人受益。
答案 0 :(得分:9)
是的,这可以通过Eclipse
中的StatET 2.0
+ R 2.14-1
来实现。
Eclipse
支持条件调试,StatET 2.0
支持可视调试(只要你有一个相当新版本的R。)
假设您了解Eclipse的方法,请执行以下操作:
打开调试透视图后,您将看到一个包含Variables / Breakpoints
选项卡的窗格。在“断点”选项卡中,选择断点,然后单击Conditional / Expression
复选框并输入您的条件。
在搜索此答案时,我发现以下页面很有帮助:
答案 1 :(得分:1)
在rstudio中设置条件断点有一个小技巧:
for(i in 1:10){
if(i==5){
print("set the breakpoint at this line by shift+f9")
}
i*i
}
唯一的缺点是你需要添加一些额外的代码
答案 2 :(得分:0)
RStudio v0.98的预览版具有以下功能: http://www.rstudio.com/ide/docs/debugging/overview
唯一的缺点是,如果要在函数中设置断点,则函数应与主代码位于同一文件中。