13

我想从 R 控制台在后台执行 R 脚本。

从控制台,我通常将 R 脚本作为 source('~/.active-rstudio-document') 运行,我必须等到脚本完成才能继续我的其余工作。相反,我希望 R 在后台运行,同时我可以在控制台中继续我的工作。当 R 完成源命令时,我也应该以某种方式得到通知。这在 R 中可能吗?

这可能非常有用,因为我们经常看到工作需要很长时间。

PS - 我希望源脚本在相同的内存空间而不是新的内存空间中运行。因此, fork 、 system 等解决方案对我不起作用。我正在查看是否可以将 R 脚本作为单独的线程而不是单独的进程运行。

4

1 回答 1

23

您可以使用system()Rscript 将脚本作为异步后台进程运行:

system("Rscript -e 'source(\"your-script.R\")'", wait=FALSE)

在脚本结束时,您可以保存对象save.image()以便稍后加载它们,并通过以下方式通知其完成cat()

...
save.image("script-output.RData")
cat("Script completed\n\n")

希望这可以帮助!

于 2013-01-08T07:10:07.723 回答