【发布时间】:2017-07-04 12:31:32
【问题描述】:
在 RStudio 中执行代码块时,发生错误时执行实际上并没有停止。例如,如果我在打开的编辑器中有以下代码:
x <- 'test'
stopifnot(is.numeric(x))
print('hello world')
并运行它(使用命令返回或单击“运行”按钮),它会打印错误,然后继续执行打印语句。
有没有办法将 RStudio 配置为不继续出错?即让它在上面的第 2 行停止而不继续打印语句?
编辑:刚刚意识到,如果我使用 command-R 在标准 R GUI 中发送代码块,也会发生这种情况。
【问题讨论】:
-
如果您将其作为源文件执行,那么它将按照您的意愿工作。例如,如果您将 3 行代码复制并粘贴到控制台并按 Enter,那么它将分别运行每一行代码。第二种模式很可能是运行按钮的操作方式。
-
@lmo 谢谢——问题是我认识的大多数人都是交互式编程的。我正在尝试为社会科学家编写一个教程,以便在他们的代码中进行测试,并且需要在他们所在的地方满足他们。
-
总是有
tryCatch和try。 -
感谢@Dason 的评论,我刚刚想到的一个技巧:如果您将代码括在大括号中,
{}R 将像执行单个命令一样执行该块,那么您将获得您的想要的结果。 -
@Dason 它经常出现在数据科学领域。人们有很长的数据清理和组织脚本,并希望添加完整性检查以确保当他们在某一时刻更改内容时,不会在其他地方搞砸他们的数据。只需进行少量检查以确保观察次数仍然正确,或者唯一标识符仍然是唯一的。
标签: r unit-testing testing rstudio read-eval-print-loop