我正在使用Rscript运行一个R脚本,但是屏幕上输出了很多内容。我能以静默模式运行Rscript吗(即不产生任何屏幕输出)?
有几个选项:
在R内部:使用 sink()
将输出重定向到文件,请参见 help(sink)
在shell上: Rscript myscript.R 2>&1 >/dev/null
编辑代码 :)
在Linux上,使用我们的littler 前端,因为它默认以 --slave
模式运行 :)
选项3可能是最复杂的,但可能是最好的。您可以使用日志记录方案,在“调试”或“详细”模式下打印/显示,但不会在其他情况下。我经常这样做,基于传递给脚本的命令行切换。
library()
调用周围包装suppressPackageStartupMessages()
来消除它们;我经常只使用suppressMessages()
。 - Dirk EddelbuettelRscript -e“library(tidyverse)”2>&1> /dev/null
进行测试,则仍会看到输出,但是使用Rscript -e“library(tidyverse)”> /dev/null 2>&1
可以将其全部静音。 - pgcudahyRscript myscript.R >& >/dev/null (linux)
或者
Rscript myscript.R >$null (windows)
或者直接使用 R
:
R --quiet --vanilla < myscript.R
R CMD BATCH myscript.R
myscript.Rout
的文件中)Rscript myscript.R >a.Rout 2>a.Rerr
这将把程序输出写入a.Rout文件,错误消息写入a.Rerr文件。请注意,在此之前应该先删除a.Rout和a.Rerr文件,以避免出现错误。
R --help
,但这只会影响到 R 本身。不过还有一个选项--slave
.... - Dirk Eddelbuettel