有关 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"))
然后 future 表达式在其中一台机器上解析。使用
plan(future.BatchJobs::batchjobs_slurm)
将导致它通过 Slurm 作业调度程序队列得到解决。
这个问题与Run asynchronous function in R密切相关
关于rstudio - 是否可以在后台运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20596786/