执行Rmarkdown代码块时如何设置遇错误自动中断运行?
RStudio运行Rmd单代码块遇错不中断的解决方法
该现象属于RStudio的版本默认行为:当你设置Rmd代码块输出到控制台时,点击「运行当前代码块」或使用快捷键Ctrl+Shift+Enter,RStudio会将代码逐行发送到控制台执行,该流程不会读取代码块设置的error参数,因此无论设置error=TRUE还是error=FALSE,代码都会逐行运行完成,和直接在控制台逐行粘贴运行代码的逻辑一致。只有内嵌输出模式下,RStudio会调用knitr逻辑运行单个代码块,才会识别error参数实现遇错中断。
可行配置方案
- 单代码块临时生效
在需要设置遇错中断的代码块开头添加如下代码:
后续代码一旦报错就会直接终止,不会继续运行。如果需要恢复默认报错行为,运行options(error = function() stop("执行中断", call. = FALSE))options(error = NULL)即可。 - 全局永久生效
将上述配置代码写入R的启动配置文件.Rprofile中,每次启动R/RStudio后会自动生效,所有在控制台运行的代码(包括Rmd单代码块运行内容)遇到错误都会直接终止。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

