使用 Start 命令让 Windows 以批处理模式启动 R

发布于 2024-07-29 08:50:56 字数 820 浏览 7 评论 0原文

我知道我一定犯了一个简单的语法错误,但我想要一个 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\getdata1.r" 

阅读此 之前的 stackoverflow 问题以及上一个问题让我觉得我应该能够做到这一点:

START "" "C:\Program Files (x86)\R\R-2.8.1\bin\R" CMD BATCH "C:\Users\jd\Documents\mexico\Estado\getdata1.r" /b

这不会返回错误,它只是返回提示,而 R 永远不会开始。 我缺少什么?

I know I must be making a simple syntax mistake, but I want to have a windows batch file that fires up 9 instances of R and runs a different routine in each one. I want these to run simultaneously (i.e. asynchronously). I can fire up 9 command prompt windows and type a command in each one, but it seems like with the START command I should be able to make them start from a single batch file.

Here's an example of how I start one of the instances of R:

"C:\Program Files (x86)\R\R-2.8.1\bin\R" CMD BATCH "C:\Users\jd\Documents\mexico\Estado\getdata1.r" 

Reading this previous stackoverflow question along with this previous question makes me think I should be able to do this:

START "" "C:\Program Files (x86)\R\R-2.8.1\bin\R" CMD BATCH "C:\Users\jd\Documents\mexico\Estado\getdata1.r" /b

That does not return an error, it just returns a prompt and R never starts. What am I missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

始终不够爱げ你 2024-08-05 08:50:56

我会做两件不同的事情:

  1. 使用 R 本身来调度九个不同的工作; 即使不使用 MPI / PVM, snow 包也非常擅长于此/NWS 用于分布式工作。 例如,我的“R 高性能计算简介”教程中提供了一些关于雪的使用示例,该教程链接自此页面< /a>. 借助 Snow,您可以获得应用函数的“并行”版本,您可以在本地计算机(或者当然是计算机网络,如果有的话)上运行的多个 R 实例上运行这些函数。 r-sig-hpc 列表对于解决更详细的问题很有帮助。

  2. 切换到使用 Rscript.exe,而不是使用“R CMD BATCH”。 在 Linux / OS X 上,您还可以选择使用更小的

也就是说,我几乎在 Linux 上运行所有工作,因此这里也可能有一个特定于 Windows 的答案,我只是不知道。 但以上内容是通用的,并且保留了 R 的平台无关精神。

I would do two things differently:

  1. Use R itself to dispatch nine different jobs; the snow package is very good at this even when do not use MPI / PVM / NWS for distributed work. Some examples for snow use are for example in my 'introduction to high performance computing with R' tutorials linked from this page. With snow, you get 'parallel' versions of the apply functions that you can run over multiple instances of R running on the local computer (or of course a network of computers if have one). The r-sig-hpc list is helpful for more detailed questions.

  2. Switch to using Rscript.exe instead of using 'R CMD BATCH'. On Linux / OS X you also get a choice of using littler

That said, I run almost all my jobs on Linux so there may be a Windows-specific answer here too that I just do not know. But the above is generic and stays in the platform-agnostic spirit of R.

凹づ凸ル 2024-08-05 08:50:56

简单的回答。 在 Windows 上运行命令时使用“Rcmd”而不是“R CMD”。 有一个单独的 exe 用于运行命令。 查看 R 安装的 bin 文件夹。

Simple answer. On windows when running command use "Rcmd" not "R CMD". There is a separate exe for running the commands. Look in the bin folder of your R installation.

哑剧 2024-08-05 08:50:56

从其他答案中并不能立即清楚如何实际完成这项工作(不诉诸并行处理替代方案,所以这是我发现在 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)
}

在 CMD 上,指定目录脚本所在的位置,然后使用 Rscript 启动一个新窗口来运行代码。 多行将打开多个运行代码的 r 实例,这些实例还会重现代码输出的消息。

cd "C:\rcode"
START "" Rscript example_code.r /b
START "" Rscript example_code.r /b

如果 Rscript 不在系统路径上,则只需指定。完整路径:

START "" "C:\Program Files\R\bin\x64\Rscript.exe" text_within_loop.r /b

It was not immediately clear from the other answers how to actually make this work (without resorting to parallel processing alternatives, so here is a solution I found that works very simply on windows

If you have a simple r file:

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)
}

On CMD, specify the directory of where your script is and then start a new window with Rscript to run your code. Multiple lines will open multiple r instances that run your code that also reproduce the messages that the code outputs.

cd "C:\rcode"
START "" Rscript example_code.r /b
START "" Rscript example_code.r /b

If Rscript is not on the system path, just specify the full path instead:

START "" "C:\Program Files\R\bin\x64\Rscript.exe" text_within_loop.r /b
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文