我想从R控制台在后台执行R脚本。
从控制台,我通常运行R脚本作为源('〜/ .active-rstudio-document') 我必须等到脚本完成后继续我的其余工作。 而不是这个我希望R在后台运行,而我可以在控制台继续我的工作。 当R完成源命令时,我应该以某种方式通知我。 这可能在R?
这可能非常有用,因为我们经常看到工作需要很长时间。
PS - 我希望源脚本在相同的内存空间而不是新的内存空间中运行。因此,像fork,system等解决方案对我来说不起作用。我看到我是否可以将R脚本作为单独的线程而不是单独的进程运行。
答案 0 :(得分:18)
您可以使用system()
和Rscript将脚本作为异步后台进程运行:
system("Rscript -e 'source(\"your-script.R\")'", wait=FALSE)
在您的脚本结束时,您可以使用save.image()
保存对象,以便稍后加载它们,并通过cat()
通知其完成情况:
...
save.image("script-output.RData")
cat("Script completed\n\n")
希望这有帮助!