我已经实施了这种混合效果模型:
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次。如何以编程方式添加随机效果的预测,可能使用函数,也许在一行中?
答案 0 :(得分:10)
像这样:
for( i in c(4,6,8) ) {
mtcars[[ paste0("random.effect.cyl", i) ]] <- mtcarsMEFixed + ranef(mtcarsME)$cyl[as.character(i),]
}
查看? "[[<-"