5

我已经执行了这个混合效果模型:

mtcarsSub <- mtcars[,c("wt", "drat", "cyl")]
library(lme4)
mtcarsME <- lmer(drat ~ (1|cyl) + wt, data=mtcarsSub)

我现在想将模型中的预测添加到mtcarsSub. 我可以将这些添加为新变量,如下所示:

mtcarsSub$fixed.effect <- predict(mtcarsME)
mtcarsSub$random.effect.cyl4 <- mtcarsMEFixed + ranef(mtcarsME)$cyl["4",]
mtcarsSub$random.effect.cyl6 <- mtcarsMEFixed + ranef(mtcarsME)$cyl["6",]
mtcarsSub$random.effect.cyl8 <- mtcarsMEFixed + ranef(mtcarsME)$cyl["8",]

请注意,将随机效应的预测添加到 时mtcarsSub,我重复了 3 次。如何以编程方式添加随机效应的预测,也许使用函数,也许在一行中?

4

1 回答 1

11

像这样:

for( i in c(4,6,8) ) {
  mtcars[[ paste0("random.effect.cyl", i) ]] <- mtcarsMEFixed + ranef(mtcarsME)$cyl[as.character(i),]
}

看一下? "[[<-"

于 2013-06-17T16:43:01.480 回答