假设我有一个R脚本:
library('nnet')
something <- runif(50);
print(something)
当我从命令行运行此脚本时,它会打印:
> library('nnet')
> something <- runif(5);
> print(something)
[1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019
我希望它只打印:
[1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019
我无法弄清楚如何做到这一点。 sink(“/ dev / null”)没有做任何事情,手动重定向stderr没有做任何事情,我找不到任何有用的信息。
答案 0 :(得分:22)
解决方案是使用Rscript运行,而不是使用R.其他地方的示例(例如 How can I read command line parameters from an R script? ),使用
从命令行运行脚本R --args args1 args2... < foo.R
使用
运行Rscript foo.R args1 args2 ...
仅生成输出,而不生成脚本。它也是一种更简洁的方式来运行脚本。
答案 1 :(得分:2)
我自己不是R用户,但这可能会对您有所帮助吗? How can I run an 'R' script without suppressing output?
来自链接的问题:
如果您只想获取输出(而不是命令),请将
print.eval
参数设置为TRUE
。如果您还需要命令,则应将echo
设置为TRUE
(这意味着将print.eval
设置为TRUE
。)例如:
source('myscript.R', print.eval = TRUE)
答案 2 :(得分:2)
source( 'path/name/filnam.R' , verbose=FALSE)
答案 3 :(得分:1)
直接在终端中运行:
R --slave --args dense 12 0.98 < foo.R
从Python运行R脚本:
process = subprocess.Popen(["R --slave --args %s %d %.2f < /path/to/your/rscript/foo.R" % (, 12, 0.98) ], shell=True)
process.wait()
要在终端/命令行和后台运行R脚本,同时禁止/避免打印脚本的每一行和程序的输出,使用R CMD BATCH如下:
R CMD BATCH--slave foo.R 2>&1 foo.out &
答案 4 :(得分:1)
对于Windows中的RStudio IDE(版本1.1.383):
按 Ctrl + Shift + Enter 键以echo(详细)
运行整个脚本按 Ctrl + Shift + S 键运行整个脚本,不带回声(非详细)