我使用的是 Ubuntu 14.04。我喜欢使用命令从终端 (bash) 运行 R 脚本Rscript。我喜欢将输出重定向到文件,例如:
Rscript some_R_code.R > output.log &\nRun Code Online (Sandbox Code Playgroud)\n\n(我喜欢在后台运行它,这就是我使用 & 的原因)。
\n\n事实上,99% 的输出确实会发送到该文件。但我确实收到了一些奇怪的小信息,但实际上没有。例如:
\n\nWarning message:\nreplacing previous import \xe2\x80\x98getCall\xe2\x80\x99 when loading \xe2\x80\x98fBasics\xe2\x80\x99 \nRun Code Online (Sandbox Code Playgroud)\n\n当我想要将其输出到文件时,它会输出到终端。
\n\n造成这种情况的原因是什么?如何解决?
\n您定向stdout到一个文件,但警告实际上转到stderr. 您可以使用以下命令重定向stderr和:stdout&>
Rscript some_R_code.R &> output.log &
Run Code Online (Sandbox Code Playgroud)
或者您可以重定向stderr到一个单独的文件:
Rscript some_R_code.R > output.log 2> err.log &
Run Code Online (Sandbox Code Playgroud)