这一定是一个非常微不足道的问题,但我很难找到解决方案。这是我的问题:
此作品
#I run a simple regression
data(mtcars)
dataf <- mtcars
summary(fit1 <- lm(mpg ~ wt, data=dataf))
#Then I merge the fitted values with the data frame
dataf$fit <- fitted(fit1)
这(当然)不起作用
dataf[2,]<-NA
summary(fit2 <- lm(mpg ~ wt, data=dataf))
#of course the NA value reduces my lm output
dataf$fit2 <- fitted(fit2)
Error in `$<-.data.frame`(`*tmp*`, "fit2", value = c(23.3189679389035, :
replacement has 31 rows, data has 32
但我如何才能使第二个例子起作用?我通过row.names
中的model.matrix()
尝试了一个解决方案但是当我在回归中包含某些因素时这不起作用(如果我理解正确的话,这已被报告为bug)。谢谢你的帮助!
答案 0 :(得分:6)
经过一番搜索,我想我找到了另一种选择
dataf[2,]<-NA
summary(fit2 <- lm(mpg ~ wt, data=dataf, na.action="na.exclude"))
dataf$fit2 <- fitted(fit2)
应该做的伎俩。正确?
答案 1 :(得分:4)
dataf$fit2 <- NA
dataf$fit2[!is.na(dataf$wt)] <- fitted(fit2)