有关RStudio的问题。假设我正在控制台中运行代码:
> code1()
假定
code1()
在控制台上不打印任何内容,但是上述code1()
需要一个小时才能完成。我想在等待code1()
的同时做其他事情。可能吗?是否有像runInBackground
这样的函数可以按以下方式使用> runInBackground(code1())
> code2()
替代方案是运行两个RStudio或编写一个使用
Rscript
来运行code1()
的批处理文件,但我想知道是否可以做一些更简单的事情而不离开RStudio控制台。我试图浏览R的帮助文档,但没有提出任何建议(或者可能是我没有使用正确的关键字)。 最佳答案
future package(我是作者)提供了以下内容:
library("future")
plan(multisession)
future(code1())
code2()
仅供引用,如果您使用
plan(cluster, workers = c("n1", "n3", "remote.server.org"))
然后在其中一台计算机上解析将来的表达式。使用
plan(future.BatchJobs::batchjobs_slurm)
将导致它通过Slurm作业计划程序队列来解决。
这个问题与Run asynchronous function in R密切相关