Rscripts的使用,以及如何为R脚本传参数
一、在windows下使用Rscript:
1.进入cmd.exe下,将当前工作目录转到Rscript.exe所在目录下面,然后调用Rscript **.R文件即可。但是所调用的.R文件必须是在R的工作目录下,也就是和Rscript.exe在同一个文件夹内(Rscript默认情况下是不保存工作空间的)。还可以将这些命令写成一个bat文件,然后将该文件放置在cmd.exe的工作目录下,直接在cmd.exe中输入该bat文件名即可运行。bat文件中包含了Rscript命令。
2.进入cmd.exe下,将当前工作目录转到Rscript.exe所在目录下面,直接输入R的命令,格式为:Rscript -e "x<-seq(0,10,2) " -e "x"或者使用格式如Rscript -e "a<-c(1,20,2);write(a,file='data.txt');"等来执行(各语句之间用“;”分隔开来)。
需要注意的是:如果执行命令Rscript -e "a<-c(1,20,2);write(a,file="data.txt");"(此处均为双引号)将数据写入到一个文件中,会显示说找不到对象(指要写入的文件),如何解决?
这是因为在命令行下 -e 后面的命令需要用双引号,所以其中的语句就不能直接用双引号来表示字符串了。可以使用单引号,也可以通过反斜杠号来对双引号进行转义来解决(使用单引号和双引号均可,关键是要使得Rscript的引号和中间语句的引号区分开来即可)。另一种解决方法是将R命令保存成.R文件,然后通过Rscript调用。
画图时,并不直接显示出来图形!而是自动转换成了pdf格式,存在了Rscript的目录下。不管是画了多少个图形,都会保存在一个pdf文件中,分页来显示,pdf文件的名字为Rplots.pdf。但是可以通过在R 语句中首先通过命令png或者bmp、jpeg首先限定一下图形文件的文件名及其类型。如上图示中的最后一条语句。
二、用Rscripts给R脚本传递参数
1.用法
Rscript的用法中有个args,这个就是传递给.r文件的参数,在脚本中调用这个参数需要用到commandArgs()这个函数。
2.下面举例说明
Rscript xx.r 1 2
将1和2传递给xx.r脚本,而xx.r脚本中是这样调用的:
args<-commandArgs(T) #收集参数给args变量,则args[1]=1,args[2]=2
这样就可以根据不同的参数执行不同的命令了
#barplot.R
args<-commandArgs(T)
x<-read.table(args[1])
png(args[2], width=1024, height=768)
barplot(x$V2, names.arg=x$V1)
dev.off()
运行:
Rscript barplot.R /RNA/shang/human-RNA-seq/result/output/chr.junction /RNA/shang/human-RNA-seq/result/output/chr.juntion.png
Rscripts的使用,以及如何为R脚本传参数的更多相关文章
- InnoSetup跨脚本传参数
需求:在a.iss脚本传递参数给b.iss 举例: a.iss:传程序安装路径给b.iss Parameters: /Path={app} b.iss:接收a.iss传过来的安装路径 DefaultD ...
- shell执行lua脚本传参数
#lua test.lua 2 5arg[0]= test.lua arg[1]= 2arg[2]= 5 if arg[1] and arg[1] == "2" then prin ...
- python 脚本带参数
如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数 ...
- 如何在cluster上跑R脚本
R 是一个比较不错但是有时候操蛋的语言,不错是因为用着爽的时候真的很爽,操蛋是因为这种爽不是什么时候都可以的,比如说在cluster上批处理跑R脚本. 当然说这话有些在上面跑过的各种不服气,你丫傻逼吧 ...
- 编写运行R脚本
1.在后台运行R 1.1 创建file.R文件 1.2 在文件首行键入: #! /path/to/Rscript 1.3 在下面的行中,键入R代码 1.4 保存(记得有png(),jpeg(),... ...
- R(二): http与R脚本通讯环境安装
结合实际的工作环境,在开始R研究的时候,首先着手收集的就是能以Web方式发布R运行结果的基础框架,无耐的是,R一直以来常使用于个人电脑的客户端程序上,大家习惯性的下载R安装包,在自己的电脑上安装 -- ...
- VS中使用QT调用R脚本
一开始想直接把R编译成库然后调用R,后来查了n多资料,发现VS中是无法办到的,官方也给出了一句话,大概意思就是没可能在VS中使用R提供的C++接口,大概是涉及到了底层的ABI的原因,具体也不太清楚. ...
- R语言笔记2--循环、R脚本
1.循环语句 for语句 while语句 2.R脚本 source()函数 print()函数
- Linux系统 awk sed R脚本 python脚本传入变量
sed 传入变量: chrI="chr2";sed -n "/$chrI/p" clippointpos.csv #变量用$var表示,把sed的单引号变为双 ...
随机推荐
- UISwipeGestureRecognizer 左右事件捕捉
转自:http://blog.163.com/china_uv/blog/static/117137267201252102612185/ UISwipeGestureRecognizer 左右事件相 ...
- 深入理解Linux内核-回收页框
Linux 系统在为用户态进程和内核分配动态内存的时候,所作的检查是马马虎虎的对内核使用的许多磁盘高速缓存和内存高速缓存大小也同样不作限制. 页框回收算法(PFRA):1.在所有内存使用完之前,就必须 ...
- Fluent UDF【2】:学习途径
要怎样做才能做到无畏惧编写任何UDF程序?估计很多与UDF打交道的人都会问到这个问题. 面对UDF文档中那众多的宏描述,小伙伴们是不是感觉到茫然无措,不知从何入手.有时候读别人写好的程序感觉并不难,然 ...
- python(46):对字典进行排序,多键值排序
注:改于2017-12-07,python3 下 Removed dict.iteritems(), dict.iterkeys(), and dict.itervalues(). Instead: ...
- python(40):利用utf-8编码判断中文英文字符
#!/usr/bin/env Python # -*- coding:GBK -*- """汉字处理的工具: 判断unicode是否是汉字,数字,英文,或者其他字符. 全 ...
- COMPILING ACTIONSCRIPT 3.0 WITH SUBLIME TEXT 2
At Clock we typically spend our time developing JavaScript and PHP, however, occasionally Flash pres ...
- 【delphi】多线程同步之Semaphore
另外两种多线程的同步方法 CriticalSection(临界区) 和 Mutex(互斥), 这两种同步方法差不多, 只是作用域不同; CriticalSection(临界区) 类似于只有一个蹲位的公 ...
- Windows 安装 setuptools 和 feedparser
一.安装setuptools: 页面: https://pypi.python.org/pypi/setuptools#downloads 1.下载该zip文件,解压,例如:C:\setuptools ...
- Python 连接数据库 mysql
python 连接 数据库 import pymysql db = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='r ...
- Xapian构建索引说明
Reference: http://www.totogoo.com/article/115/xapian-desc.html Xapian与开源 Xapian的官方网站是http://www.xapi ...