每次运行时,如何避免打印R脚本?

Joh*_*tte 16 r r-faq

假设我有一个R脚本:

library('nnet')    
something <- runif(50); 
print(something) 
Run Code Online (Sandbox Code Playgroud)

当我从命令行运行此脚本时,它会打印:

> library('nnet')
> something <- runif(5); 
> print(something)
 [1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019
Run Code Online (Sandbox Code Playgroud)

我希望它只打印:

[1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何做到这一点.sink("/ dev/null")没有做任何事情,手动重定向stderr没有做任何事情,我找不到任何有用的信息.

Joh*_*tte 22

解决方案是使用Rscript运行,而不是使用R.其他地方的示例(例如,如何从R脚本中读取命令行参数?),从命令行运行脚本

R --args args1 args2... < foo.R
Run Code Online (Sandbox Code Playgroud)

跑着

Rscript foo.R args1 args2 ...
Run Code Online (Sandbox Code Playgroud)

仅生成输出,而不生成脚本.它也是一种更简洁的方式来运行脚本.

  • @JohnDoucette优秀约翰.我希望[so]上的更多用户和[tag:r]标签像今天一样具有公民意识. (3认同)