寻找一个选项,让我将 R 诊断消息(由 产生message())重定向到stdout,而不是stderr默认情况下。
message 手册指出:
默认处理程序将消息发送到 stderr() 连接。
所以问题是我怎样才能改变这个默认行为?仍然保持重定向warning()和stop()完好无损。
已经尝试过 sinktype='message'但它重定向了所有(消息、警告、错误)。
如果有人愿意测试,这是示例脚本exec_test.R:
print("using print")
cat("using cat\n")
message("using message")
warning("using warning")
stop("using stop")
q("no")
Run Code Online (Sandbox Code Playgroud)
然后将通过以下方式执行:
Rscript exec_test.R 1>> exec_test.Rout 2>> exec_test_error.Rout
我不知道要使用什么,2>&1因为我的脚本会产生大量的messages 并且很少产生真正的错误,所以我需要将这些日志存储在单独的文件中。