有没有一种方法可以导出和导入模型,而不是在每个会话中重新运行它们?

时间:2019-02-18 10:09:53

标签: r lme4

我必须运行大量计算密集型的工作模型(例如具有大量嵌套在其他随机效应中的随机效应的泊松家族glmers),从中进行预测,然后将其绘制为图形。有时我的经理希望我对预测或图表进行更改,但是模型有时需要几个小时才能运行。是否可以通过导出和导入模型对象来节省时间,而不必每次都在脚本中重新运行它们?

2 个答案:

答案 0 :(得分:2)

counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
d.AD <- data.frame(treatment, outcome, counts)
glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())

保存模型对象

saveRDS(glm.D93, file="glm.rds")
rm(glm.D93)

检索模型对象

glm.D93 <- readRDS("glm.rds")
anova(glm.D93)

# Analysis of Deviance Table

# Model: poisson, link: log

# Response: counts

# Terms added sequentially (first to last)

          # Df Deviance Resid. Df Resid. Dev
# NULL                          8    10.5814
# outcome    2   5.4523         6     5.1291
# treatment  2   0.0000         4     5.1291

答案 1 :(得分:1)

您可以使用saveRDS(object, filename)保存任何对象,然后使用readRDS(filename)将其读回到R中。参见?saveRDS