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的记录就能看到,哪些运行成功,哪些运行失败