在某些编码语言中,光标在调试模式下停止,然后在正在运行的函数的本地环境中发生错误。我想知道R中是否有类似的功能。
目前,我通过研究此问题发现了什么:
这是非常痛苦的。
最佳答案
(这个时间太长/格式化后无法发表评论。)我不确定您的意思(通过引用options(error=recover)
它会在循环开始前停止运行,而不是在导致该错误的迭代中跳转代码。
这是一个示例,其中中断似乎发生在导致错误的迭代中,按要求进行:
options(error=recover)
f <- function(x) { for (i in 1:x) if (i==2) stop() }
f(5)
Error in f(5) :
Enter a frame number, or 0 to exit
1: f(5)
Selection: 1
Called from: top level
Browse[1]> print(i)
[1] 2
这是在循环的特定步骤中断的,而不是(如上面建议的)在循环开始之前中断(其中
i
将是 undefined 的)。您能否举一个可复制的示例来阐明所发生的行为与您希望的行为之间的区别?
就其价值而言,RStudio前端提供了您可能更喜欢的视觉调试体验。