目前我按以下方式运行R脚本:
R --slave < <script_fullname> argument1 argument2 ...
我想知道R中关于如何通过警告退出脚本的最佳实践,q()会这样做吗?
if(!file.exists(argument1)){
q()
}
打印到stdout
if(!file.exists(argument1)){
print('file does not exist')
q()
}
并打印到std err?
另外,每当我以这种方式运行R脚本时,我都会看到以下警告。阅读标准时,我看到了:
ARGUMENT 'argument1' __ignored__
ARGUMENT 'argument2' __ignored__
无论如何都要避免这种警告吗?
答案 0 :(得分:0)
如果您因错误退出R脚本,我建议您使用stop("warning message here")
而不是print()
和q()
。
print()
,因为&#34;很难捕获并有选择地忽略这种输出。打印输出不是条件,因此您不能使用任何有用的条件处理工具。&#34; - 来自Debugging, condition handling, and defensive programming
尝试使用--args
来避免警告:
R --slave < <script_fullname> --args argument1 argument2 ...
另见this SO post。