异步运行子任务是一种在R语言中实现单独后台运行长耗时R Code的方法。通过将长时间运行的R Code提交到后台作业,可以在Rstudio中实现无需等待该步骤执行结束即可继续在当前会话执行其它分析代码。这种方法可以显著提高使用R进行数据分析的工作效率,因为它允许用户在等待长时间运行的代码执行完成的同时,继续在当前会话中执行其它分析代码,从而节省了等待时间。Rstudio 推荐使用 callr
包来实现提交R Code到后台运行。
软件地址: r-lib/callr: Call R from R (github.com)
用法简单示例
pacman::p_load(Seurat,dplyr,ggplot2)
cur_seu <- readRDS("</USER FILE/>")
### 提交单细胞差异基因搜索任务到后台
R_bg.1 <- callr::r_bg(function(obt){FindAllMarkers(obt,only.pos = T)},args = list(cur_seu),package = c("Seurat"))
degLT <- R_bg.1$get_result() ### 获取DEG结果
### 其它一些关于后台任务管理的方法
if(F) R_bg.1$kill() # 关闭后台任务
> print(R_bg.1) # 输出后台任务状态
PROCESS 'Rterm', finished.
-----
Reference
RStudio User Guide - RStudio Jobs (posit.co)
Call R from R • callr (r-lib.org)