美文网首页
Rstudio--后台提交代码任务的简单实现-【callr|jo

Rstudio--后台提交代码任务的简单实现-【callr|jo

作者: 倪桦 | 来源:发表于2023-06-10 15:06 被阅读0次

1、callr 策略

异步运行子任务是一种在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.

2、job策略-推荐使用

job::job() 可以直接打包用户在控制台的代码为 Rstudio job 提交到后台运行。在释放控制台的同时作业也会稳定在后台运行。默认情况下,作业执行时结果会返回到全局环境

remotes::install_github("lindeloev/job")

# Send long-running code to job(s).
job::job({<code here>}, title = "your job name")


Reference

RStudio User Guide - RStudio Jobs (posit.co)
Call R from R • callr (r-lib.org)
lindeloev/job: job: free Your RStudio Console (github.com)
rstudio后台运行命令 - 简书 (jianshu.com)

相关文章

网友评论

      本文标题:Rstudio--后台提交代码任务的简单实现-【callr|jo

      本文链接:https://www.haomeiwen.com/subject/nhutydtx.html