一键运行R脚本

本文介绍如何创建批处理文件(.bat),实现一键运行R脚本,无需打开R或RStudio。通过修改.bat文件内容,无论脚本与bat文件是否在同一目录,都能顺利执行。文中对比了使用R.exe和Rscript.exe两种方法,前者会生成.Rdata和.Rout文件,后者将结果保存在PDF中。这是一个方便快捷的R脚本执行方法。

你平时都是怎么运行你的R脚本的呢?是打开R还是打开Rstudio再运行你的R脚本的呢?你不觉得这样很麻烦吗?今天就给你教一招,简单方便,也不用修改环境变量,让你的脚本像启动程序一样,点一下就自动执行了。

首先我们新建一个记事本,写入下面代码。写完之后保存,将记事本的后缀.txt改成.bat保存。

一. 使用R.exe程序运行你的脚本


(1)当脚本与bat文件不在同一个文件夹

"D:\Program Files\R\R-3.3.2\bin\R.exe" CMD BATCH "C:\Users\henry wang\Desktop\text.R" text.txt
pause

如果bat文件是这样写的,那就要求我们的脚本程序必须和bat文件在同一个文件夹里面,否则就会报错。如果不在一个文件夹的话,那也没关系,咱们继续往下看。

(2)当脚本与bat文件在同一个文件夹

"D:\Program Files\R\R-3.3.2\bin\R.exe" CMD BATCH text.R text.txt
pause

其中"D:\Program Files\R\R-3.3.2\bin\R.exe"R.exe的目录,后面再加上CMD BATCH,最后"C:\Users\henry wang\Desktop\text.R"为我们要执行的程序,我的脚本文件在桌面上放着。如果我们的.bat文件和脚本程序在一个文件夹时,这里可以直接写成text.R,不用写文件目录。

其实text.txt是可写可不写,如果不写的话,默认会生成一个 程序名.Rout 的文件,里面保存的是程序代码,不过最后会调用proc.time()函数。这种文件可以用谷歌浏览器,其他浏览器我没有试,具体就不知道了,notepad++也是可以打开的。当然你也可以像我一样设置生成text.txt。除此之外,它也会生成一个.Rdata文件,保存的是程序运行中变量的值,如果想要查看的话可以在Rstudio中使用load()函数载入查看。

bat文件的最后一行代码pause也是可写可不写的,如果写的话,运行完之后那个黑框框不会自动关闭,如果不写的话,运行完之后自动关闭。写上有什么好处,如果有错误的话就会显示,不写的话就算有错误,显示一下立马关了,啥也看不到,因此写上还是比较好的。


二. 使用Rscript程序运行你的脚本


(1)当脚本与bat文件不在同一个文件夹

"D:\Program Files\R\R-3.3.2\bin\x64\Rscript.exe" "C:\Users\henry wang\Desktop\text.R"
pause

(2)当脚本与bat文件在同一个文件夹

"D:\Program Files\R\R-3.3.2\bin\x64\Rscript.exe" text.R
pause

使用Rscript.exe时,bat文件里面不用写CMD BATCH。

首先"D:\Program Files\R\R-3.3.2\bin\x64\Rscript.exe"指的就是Rscript.exe程序,然后"C:\Users\henry wang\Desktop\text.R"指的就是我们脚本text.R。如果我们的.bat文件和脚本程序在一个文件夹时,这里可以直接写成text.R,不用写文件目录。它俩中间有一个空格。

这运行完之后,如果有绘图的画,他就会把图片保存在一个PDF文档中,然后没有其他文件生成。


现在我们对这两个简单的进行一个比较。

  • 在使用Rscript.exe软件在运行之后会把图片结果打印在一个PDF文件中,然后没有其他文件生成。

  • 在使用R.exe软件,它会把中间变量的值保存在一个.Rdata文件中,程序默认会保存在一个.Rout文件中,你也可以指定为其他文件类型,比如我开始设置保存在一个txt文件中。

给大家演示一下我的bat文件执行成果,脚本写的简单,就为证明这是一个可行的方法。


注:

转载请注明原文链接:http://blog.csdn.net/wzgl__wh

个人微信公众号:跟着菜鸟一起学R语言(learn_R)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值