R批处理模式 - 无法执行脚本

时间:2015-05-05 10:52:54

标签: r csv batch-processing

为了非交互式运行R,我决定使用批处理(使用Windows 7)。 我输入的命令提示符(CMD)

cd c:\Program Files\R\R-3.1.3\bin\x64 #set directory
"c:\Program Files\R\R-3.1.3\bin\x64\R.exe" CMD BATCH "c:\Program Files\R\R-3.1.3\bin\myscript.R" "c:\Program Files\R\R-3.1.3\bin\output.out"

生成了输出。我打开了output.out文件,可以看到以下错误消息:

> myData1<-read.csv("myData.csv",header=T, sep=";", dec=",")
> temp<-read.csv("Temperature.csv",header=T, sep=";", dec=",")
Error in file(file, "rt") : cannot open the connection
Calls: read.csv -> read.table -> file
In addition: Warning message:
In file(file, "rt") :
  cannot open file 'Temperature.csv': No such file or directory
Execution halted

在myscript.R文件中,我已经将工作目录设置为文件(myData.csv和Temperature.csv)所在的位置。当我在Rstudio中执行myscript.R的内容时,一切正常。不知怎的,这个错误不断涌现,我完全无能为力。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

在您的示例中,您试图在cd c:\Program Files\R\R-3.1.3\bin\x64

中查找csv文件

您需要在R.exe所在的目录中执行Rscript.exe甚至更好myData.csv

R exe dir是一回事。
R脚本目录是另一个。 csv目录是另一个。

使用绝对路径或...
考虑到您的R脚本与csv文件位于同一目录中,您可以使用以下类型:

CD /path_to_R_script/
path_to_exe/exe script

因此,您从具有csv文件的目录运行exe。

在linux中它看起来像:

cd /my/path && Rscript myscript.R

答案 1 :(得分:1)

引用Michael Lundholm的pdf Working with R in batch mode: Some notes for beginners

  

虽然安装了R,但Windows系统找不到该文件   运行R.exe。这是因为该文件位于不在的目录中   Windows的默认搜索路径。原因是默认   安装脚本的行为是安装新版本的R in   不同的目录。由用户决定Windows的位置   应该寻找R(即使用哪个版本)。

     

如果出现此错误消息,我们必须更改搜索路径   它包括R.exe所在目录的路径。我们这样做   如下:

     
      
  1. 打开控制面板,选择“系统”,点击左侧菜单中的“高级系统设置”,然后选择“环境”   变量按钮;见图5.
  2.   
  3. 选择变量'Path'并单击Edit-button。现在我们必须编辑变量值',以便它还包含到的路径   安装各种R二进制文件(程序)的目录。
  4.   
  5. 通过查找已安装R的目录,可在Windows资源管理器中找到此文件的路径。见图6.通常是   路径类似于C:\Program Files\R\R-2.15.1\bin\x64和它   应附加到“变量值”中已存在的路径。
  6.   
  7. 请注意,搜索路径中的各种路径用分号分隔,因此我们应该在字符串字符中添加一个首字母';'   我们追加'变量值'。结果如图所示   7。
  8.   

一旦添加了环境变量的路径,就可以从存储csv文件的目录中调用Rscript

Rscript myscript.R arg1 arg2 arg3

或者你改变了

的路径
 temp <- read.csv("Temperature.csv", header=T, sep=";", dec=",")

R文件中

 temp <- read.csv("C:/Users/.../Temperature.csv", header=T, sep=";", dec=",")