尽管有NA,我如何将拟合(gamm4.model)值与DF匹配?

时间:2012-11-18 23:50:29

标签: r merge

我正在尝试使用gamm4模型中的拟合值,并且需要它们与我正在使用的数据框中的右侧行匹配。
这是我运行的模型:

gam.outcome <- gamm4(formula = outcome ~ male + s(gpa),
                    random = ~ (1|school),
                    data=avr, na.action="na.exclude")

使用lmer对象时,“na.exclude”选项会在拟合值中保留NAs,以便fit(lmer.output)调用返回与数据帧长度和顺序相同的向量。但是在gamm4中我尝试了fitted(gam.outcome$gam)fitted(gam.outcome$mer),但不知道如何处理两者的结果。尽管有“na.exclude”选项,后者省略了所有NA。前者包括两倍于lmer的NA值,这应该是某种线索,但是我太厚了不能得到它。我所知道的是,无论哪种方式,矢量都不与原始数据对齐。

我想有不止一种方法可以解决我的问题。我非常感谢帮助改进或标记我的问题以及回答它。谢谢!

1 个答案:

答案 0 :(得分:1)

大约(未经测试):

myfitted <- numeric(nrow(avr))
myfitted[!complete.cases(avr)] <- NA
myfitted[complete.cases(avr)] <- fitted(gam.outcome$mer)

或(也未经测试)

avrframe <- model.frame(outcome~male+gpa+school,na.action=na.exclude)
napredict(attr(avrframe,"na.action"),fitted(gam.outcome$mer))

第一个解决方案假设NA中的所有avr值都位于您感兴趣的列中,或者与列中的NA值位于同一行中我们很感兴趣。第二次试图自动解决这个问题。