让windows使用start命令在批处理模式下启动R
我知道我一定是犯了一个简单的语法错误,但我希望有一个windows批处理文件,可以激发9个R实例,并在每个实例中运行不同的例程。我希望它们同时运行(即异步运行)。我可以启动9个命令提示符窗口,并在每个窗口中键入一个命令,但似乎使用START命令,我应该能够使它们从单个批处理文件开始 下面是我如何启动R的一个实例的示例:让windows使用start命令在批处理模式下启动R,windows,r,batch-file,command-prompt,Windows,R,Batch File,Command Prompt,我知道我一定是犯了一个简单的语法错误,但我希望有一个windows批处理文件,可以激发9个R实例,并在每个实例中运行不同的例程。我希望它们同时运行(即异步运行)。我可以启动9个命令提示符窗口,并在每个窗口中键入一个命令,但似乎使用START命令,我应该能够使它们从单个批处理文件开始 下面是我如何启动R的一个实例的示例: "C:\Program Files (x86)\R\R-2.8.1\bin\R" CMD BATCH "C:\Users\jd\Documents\mexico\Estado\g
"C:\Program Files (x86)\R\R-2.8.1\bin\R" CMD BATCH "C:\Users\jd\Documents\mexico\Estado\getdata1.r"
与此同时阅读,让我觉得我应该能够做到这一点:
START "" "C:\Program Files (x86)\R\R-2.8.1\bin\R" CMD BATCH "C:\Users\jd\Documents\mexico\Estado\getdata1.r" /b
它不会返回错误,只会返回一个提示,而R永远不会启动。我缺少什么?我会做两件不同的事情:
也就是说,我几乎所有的作业都是在Linux上运行的,所以这里可能也有一个Windows特有的答案,我只是不知道。但是上面的内容是通用的,并且停留在R的平台不可知精神中。简单的答案。在windows上运行命令时,请使用“Rcmd”而不是“R CMD”。有一个单独的exe用于运行命令。查看R安装的bin文件夹。从其他答案中还不清楚如何真正做到这一点(无需求助于并行处理替代方案,因此我发现有一个解决方案非常适合windows 如果您有一个简单的r文件:
for(i in 1:10){
ptm0 <- proc.time()
Sys.sleep(0.5)
ptm1=proc.time() - ptm0
jnk=as.numeric(ptm1[3])
cat('\n','It took ', jnk, "seconds to do iteration", i)
}
如果Rscript不在系统路径上,只需指定完整路径即可:
START "" "C:\Program Files\R\bin\x64\Rscript.exe" text_within_loop.r /b
好的,这很有道理。我需要休息一下,花一天的时间把我虚弱的大脑围绕在snow和MPI上。并行处理肯定是未来的趋势,但我在升级方面进展缓慢。好的是,在跳到MPI之前,你可以在本地机上使用网络套接字来试验snow。也就是说,现在有九个作业一台机器可能会耗尽您的内存。是否“/b”是START命令的参数?我想它会传递给R程序。尝试将其更改为START/b……但我不确定这是否真的能解释问题(R从未启动)。您解决了这个问题吗,@JD?@Roman,我最终生成了Segue:)如果我今天尝试解决同样的问题,我会使用多核或doRedis。但snow肯定是并行化作业的更复杂的方法。是的,snow更复杂。。。而随着这种复杂性的增加,会产生大量的开销
START "" "C:\Program Files\R\bin\x64\Rscript.exe" text_within_loop.r /b