R中的命令行参数为空

时间:2015-02-11 21:42:03

标签: r

我在R.编码。

我认为我在R中取得了相当不错的进展。我创建了一个脚本,它读取命令行参数(有1个参数,它是数据文件的名称),从.csv中读取数据,进行了回归并打印了一些数据。

在某个地方,我修改了一些东西,一切都在窗外。随后,我拆掉了我的整个脚本,现在我有了最基本的脚本,而且表现得很奇怪。这就是我现在所拥有的:

#NOTE: To run the script use the following command in terminal R CMD 
#BATCH scriptname arguments #store the current directory 

initial.dir<-getwd() 

#set the output 
sink("PROGOUT.out") 

#Get commandline arguments 
args<-commandArgs(trailingOnly=TRUE) 
print(args) 
"HELLO WORLD" 

我希望这个程序能够创建一个文件PROGOUT.out,它包含命令行参数和短语HELLO WORLD。

在命令提示符下,我跑了,

$ R CMD BATCH R_ScriptV3.R test1 test2 test3 test4

程序会创建两个文件'test1'和'PROGOUT.out'

这是PROGOUT.out的内容:

  

字符(0)

     

[1]“你好世界”

     

proc.time()用户系统已用完0.201 0.026 0.219

这是test1的内容:

  

R版本3.1.2(2014-10-31) - “南瓜头盔”版权所有(C)2014 R统计计算平台基础:x86_64-apple-darwin10.8.0(64位)R是免费软件并且绝对没有保修。欢迎您在特定条件下重新分发它。输入“license()”或“license()”以获取分发详细信息。自然语言支持但在英语语言环境中运行R是一个与许多贡献者合作的项目。输入'contributors()'以获取更多信息,输入“引用()”以了解如何在出版物中引用R或R包。为某些演示输入'demo()',为在线帮助输入'help()',或为HTML浏览器界面输入'help.start()'以提供帮助。输入'q()'退出R. [以前保存的工作区已恢复]&gt;

     

注意:要运行脚本,请在终端

中使用以下命令      

R CMD BATCH scriptname参数&gt; &GT; #store当前目录

     

initial.dir&lt; -getwd()

     
    

设置输出

  
     

汇(“PROGOUT.out”)

     
    

获取命令行参数

  
     

args&lt; -commandArgs(trailingOnly = TRUE)

     

print(args)

     
    

“HELLO WORLD”&gt;

  

所以... 1)为什么程序会创建文件'test1'?当我开始编写脚本时没有发生这种情况,但是看起来命令提示符中的第一个参数变成了带有一些头信息和程序副本的文件?2)PROGOUT.out确实包含'HELLO WORLD'语句但它确实包含不包含任何其他参数....为什么不,以及如何将这些参数读入我的脚本。

我可以拥有SWORN,之前一切正常。有任何想法吗?

1 个答案:

答案 0 :(得分:3)

您正在寻找Rscript

Rscript R_ScriptV3.R test1 test2 test3 test4

R CMD BATCH work differently的参数:

R CMD BATCH '--args test1 test2 test3 test4' R_ScriptV3.R output.Rout