R命令行最佳实践:退出,打印标准输出,打印标准,避免警告

时间:2013-11-22 18:44:42

标签: r

目前我按以下方式运行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__

无论如何都要避免这种警告吗?

1 个答案:

答案 0 :(得分:0)

如果您因错误退出R脚本,我建议您使用stop("warning message here")而不是print()q()

不建议使用

print(),因为&#34;很难捕获并有选择地忽略这种输出。打印输出不是条件,因此您不能使用任何有用的条件处理工具。&#34; - 来自Debugging, condition handling, and defensive programming

<{3}}讨论了 stderr(这里重复所有选项的时间太长了。)

尝试使用--args来避免警告:
R --slave < <script_fullname> --args argument1 argument2 ...

另见this SO post

相关问题