245-简单一个R包,解放你的RStudio console

刘小泽写于2021.4.28

你是否遇到这样的情况?

当运行几行代码时,发现它要运行很久,这时你的Console就会被占用,导致你不能查看其它的结果或者检查其它的代码,就像这样:

但如果用服务器的话,我们知道,每个运行时间长的任务都是可以提交后台的,而不用一直等待它运行结束,再做下一项工作

因此,有人就开发了一个包,帮我们实现了Rstudio中的后台运行程序

来试试这个R包

它的官网在:https://github.com/lindeloev/job

# 安装
remotes::install_github("lindeloev/job")

使用很简单,只需要把要后台运行的代码(your code)放在job::job({<your code>})其中就好,例如:

library(brms)
data = mtcars[mtcars$hp > 100, ]
model = mpg ~ hp * wt

job::job(brm_result = {
    fit = brm(model, data)
    fit = add_criterion(fit, "loo")
    print(summary(fit))  # Show a summary in the job
    the_test = hypothesis(fit, "hp > 0")
})

这个任务目前就被放在后台去运行了,这时的console其实是空着的,可以继续开心地写代码看结果了

如果提交的后台任务多,怎么避免混乱?

可以通过给不同的任务加不同的名称,例如:

# 第1个任务
job::job(brm_result = {
    fit = brm(model, data)
    fit = add_criterion(fit, "loo")
    print(summary(fit))  # Show a summary in the job
    the_test = hypothesis(fit, "hp > 0")
}, title = 'the 1st test')

# 第2个任务(故意写错一个函数,导致结果无法运行)
job::job(brm_result = {
    fit = brm(model, data)
    fit = add_(fit, "loo")
    print(summary(fit))  # Show a summary in the job
    the_test = hypothesis(fit, "hp > 0")
}, title = 'the 2ed test')

利用jobs的记录就能看到,哪些运行成功,哪些运行失败

Yunze Liu
Yunze Liu
Bioinformatics Sharer

Co-founder of Bioinfoplanet(生信星球)

Next
Previous

Related