登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

云之南

风声,雨声,读书声,声声入耳;家事,国事,天下事,事事关心

 
 
 

日志

 
 
关于我

专业背景:计算机科学 研究方向与兴趣: JavaEE-Web软件开发, 生物信息学, 数据挖掘与机器学习, 智能信息系统 目前工作: 基因组, 转录组, NGS高通量数据分析, 生物数据挖掘, 植物系统发育和比较进化基因组学

R语言中使用Rscript命令代替R CMD BATCH执行命令行指令  

2011-06-14 12:16:41|  分类: R&Bioconductor |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://hi.baidu.com/zealotxk/blog/item/492302532f2cea9e8d543084.html

在windows下通过命令行来调用R脚本,可以使用R CMD BATCH file 命令。这样可在别的语言中(java,perl,php)执行此条命令,从而调用R脚本。

但是当在linux下,因为BATCH指令的权限问题,将会导致非root权限无法调用此条指令。这时使用Rscript file代替即可。(貌似Rscript在windows下无法使用,因为MS的CMD不支持)。

 

==============================================================================================

昨天又重新查看文档,并做了尝试,发现命令行指令可以用以下两种形式:

1.R [--option] [-e expr] <infile >outfile [args]

2.Rscript [--options] [-e expr] file [args]

首先看1.

a. [--option] 代表R指令的选项,具体的选项有很多,可以参考相关文档,其中'--save', '--no-save' or '--vanilla'这三者必须填一个。这就意味着[--option]不能为空。同时推荐使用--slave 选项,这个选项让R命令工作在安静模式,否则,R脚本中的所有内容都会打印在命令行内。

b. [-e expr] 这个没弄明白,我没有用到这个部分。

c. <infile 输入的文件。<不可省略。

d. >outfile 输出的文件,同上。

e. args 希望向R脚本传递的参数,在脚本内可以用commandArgs()函数读取这些参数。

f. 除了args,好像前面几个部分是可以颠倒位置的。但是args参数必须放在最后,否则报错

g. [args]可以直接用想要传递的参数代替,也可以先用--args 指明,比如--args XXX, 这两种方法都可以成功的向脚本传递参数,其参数都可以被commandArgs()函数获得。但是不同在于,如果想使用 commandArgs(TRUE)来筛选出合适的参数的时候,必须用 --args XXX

 

接着看2.

Rscript实际上是R脚本在命令行应用的一个前端

在Rscript [--options] [-e expr] file [args]中:

a. [--options] [-e expr]并非必须的。

b. file前面不用加"<" ,这点和R指令不同,Rscript会自动将第一个单独的字符串(前面没有加-- < > 等字符)作为输入的脚本文件名。

c. 如果想指定输出,可以使用>outfile 这点和R指令相同。

d. 同样[args]必须在最后。但是commandArgs(TRUE)是无法从中筛选出合适的参数的。即是说,如果想使用commandArgs(TRUE),那么只有使用R指令。

 

PS: commandArgs(TRUE)和commandArgs()区别在于:

对于命令R --vanilla --slave <test.r --args ss

前者得到的参数为 "ss"
后者得到的参数为 "/path/to/R"       "--vanilla"             "--slave"            "--args"                "ss" 

 

R CMD BATCH file 的格式是R CMD command file,这里的command是别的工具,比如BATCH(批处理工具),R借助这种指令来使用别的工具处理R脚本。所以在linux下这种方式可能会牵涉到别的工具的权限的问题。

  评论这张
 
阅读(3016)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018