当以非交互式Rscript运行时,在出错时停止R代码执行

时间:2018-10-22 15:04:27

标签: r

如何使R(3.4.2版,CentOS 6.9版)脚本停止在Error(错误)上而不是幸福地继续?我的文件:

$ cat tmp.R
a = 9
print(a)
print(b)
print(d)
print("Should never get here")

以非交互方式运行tmp.R

$ Rscript tmp.R
Looking for libraries in : ~/.R/3.4.2-lib
[1] 9
Error in print(b) : object 'b' not found
Error in print(d) : object 'd' not found
[1] "Should never get here"

问题:遇到错误时,如何使R停止执行?

我已经尝试过options(error=stop)options(error=browser)之类的东西,它们可以在交互式情况下使用,但不适用于非交互式Rscript示例。

1 个答案:

答案 0 :(得分:1)

这是因为我在options(error=traceback)中设置了.Rprofile。在我的.Rprofile中注释掉它会导致代码终止,按预期在第3行。这引起了为什么产生输出的问题。请参阅相关问题thisthis