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的单引号变为双 ...
随机推荐
- 源码解析-EventBus
示例使用 时序图 源码解读 EventBus 使用 官网定义:EventBus 是一个使用 Java 写的观察者模式,解耦的 Android 开源库.EventBus 只需要几行代码即可解耦简化代码, ...
- Android Webview SSL 自签名安全校验解决方案
服务器证书校验主要针对 WebView 的安全问题. 在 app 中需要通过 WebView 访问 url,因为服务器采用的自签名证书,而不是 ca 认证,使用 WebView 加载 url 的时候会 ...
- DBUtils查找最大的ID总是返回0
1.实体: public class Order { private int id; private Date orderDate; public int getId() { return id; } ...
- listview 两个Item可以同时点击
android:splitMotionEvents="false" ListView的这个属性可以限制它不能同时点击两个Item
- ExtJs--05--给window组件加入功能条以及子组件获取上级或下级组件的属性和方法
Ext.onReady(function(){ /** 1-- 给容器组件加入控制条 及 控制项 控制条 不同的方向有多种 tbar lbar rbar bbar fbar 2-- 依据组件本身拿到上 ...
- 自动化运维工具SaltStack详细部署
==========================================================================================一.基础介绍==== ...
- jenkins + gerrit 自动code review
最近有需求要push review以后自动跑一些测试,如果通过就自动+2 不通过就-2,目前做法如下(jenkins gerrit均已配置好,Jenkins可以连接gerrit并拉代码): 1. Je ...
- LPAD在Oracle中和 mssql以及在MySQL中的不同用法 以及调用存储过程方法
Oracle: ,') from dual ,,') from dual 效果: Mssql: )+ltrim(tt.number_no) from Tabletest as tt 效果: MySQL ...
- 在vue-cli搭建的项目中在后台mock接口中支持req.body和req.cookies
在<vue-cli搭建的项目中增加后台mock接口>中实现了后台mock,但是前端post的t数据都要在mock的后台接口中使用req的接收数据事件获取http协议body中的数据. re ...
- Android 支付宝接口调用
在近期,公司需要开发一个关于在线支付的模块,所以需要用到第三方支付平台 转载请注明出处:http://blog.csdn.net/ht_android/article/details/45307165 ...