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的单引号变为双 ...
随机推荐
- git 生成ssh keys
最近从svn转到gitlab 记录一下如何生成ssh keys 首先下载GitExtensions246SetupComplete.msi并安装,如果已经安装了git,那么安装途中就跳过就行 安装完毕 ...
- iOS安全攻防(十八):数据保护API
数据保护API 题外话 开篇先扯几句题外话,许多朋友都问我怎么不写防啊,我确实有点犹豫.hackers总是想象如果自己是开发者会怎么写,然后才能找到入手点.同理,开发者们也要想象自己是hackers会 ...
- python2和Python3异同总结
1. python3 异常不再接收逗号(,)作为参数: ## python3 中这样可以正常运行 try: print("在这里执行的代码,有异常进入except") except ...
- C#中int、long、float、double、decimal最大值最小值
最近在将java上写的一个简单的表达式求值计算器移植到Windows Phone 8,java中double的精度问题是很明显的,解决办法是改用BigDecimal类.所以觉得C#中用double也是 ...
- centos安装man中文手册
第一步下载man中文手册压缩包 //下载 wget http://pkgs.fedoraproject.org/repo/pkgs/man-pages-zh-CN/manpages-zh-1.5.1. ...
- Linux 移动或重命名文件/目录-mv 的10个实用例子
本文导航 -初识 mv 命令03% -1.移动文件08% -2.移动多个文件15% -3.移动目录23% -4.重命名文件或目录27% -5. 重命名目录35% -6. 打印移动信息39% -7. 使 ...
- python-zip方法
zip 返回一个将多个可迭代对象组合成一个元组序列的迭代器. 1. 循环多个list的数据: letters = ['a', 'b', 'c'] nums = [1, 2, 3] for lette ...
- JavaScript 模块化简述
JavaScript 模块化简述 前言 关于模块化,最直接的表现就是我们写的 require 和 import 关键字,如果查阅相关资料,就一定会遇到 CommonJS .CMD AMD 这些名词,以 ...
- 网摘Android调用WebService
这边特别注意调用的.net WCF 接口的绑定方式.以前一直用的wxHttpbinding,一直连不上.改成BasicHTTPbinding就能连上了 上篇文章已经对Web Service及其相关知识 ...
- DIOCP开源项目-DIOCP3重写笔记-1
这几天在在重新DIOCP3,基本工作已经初步完成,进入测试阶段,今天加入排队投递,本认为是个很简单的工作,稍微不注意,留了两个坑,调了7,8个小时,刚刚总算找到问题,记录一下, 关于排队投递的流程 这 ...