9

我正在使用 Rscript 运行 R 脚本,但我在屏幕上得到了很多输出。我可以在静默模式下运行 Rscript(意味着没有任何屏幕输出)吗?

4

3 回答 3

14

我想到了几个选项:

  1. 在 R 内:用于sink()将输出转移到文件,请参阅help(sink)

  2. 在外壳上: Rscript myscript.R 2>&1 >/dev/null

  3. 编辑代码:)

  4. 在 Linux 上,使用我们更小的前端,因为它--slave默认在模式下运行 :)

选项 3 涉及最多,但可能是最好的。您可以使用日志记录方案,在“调试”或“详细”中打印/显示,但不能以其他方式打印/显示。我经常这样做,基于给脚本的命令行切换。

于 2014-08-05T15:11:08.173 回答
6

您可以使用重定向输出

Rscript myscript.R >& >/dev/null (linux)

或者

Rscript myscript.R >$null (windows)

R直接使用:

R --quiet --vanilla < myscript.R

或者

R CMD BATCH myscript.R

(最后一个版本将输出写入文件myscript.Rout

于 2014-08-05T15:13:09.460 回答
0

另一种选择:如果要将输出和错误消息分开到不同的文件中,这样更容易识别问题,可以在 shell 上使用命令:

Rscript myscript.R >a.Rout 2>a.Rerr

这会将程序输出写入 a.Rout 并将错误消息写入 a.Rerr。注意 a.Rout 和 a.Rerr 的文件应该事先删除,以免出错。

于 2016-12-22T12:04:23.100 回答