5

这一定是一个非常微不足道的问题,但我正在努力寻找解决方案。这是我的问题:

这行得通

#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我通过in尝试了一个解决方案,model.matrix()但是当我在回归中包含某些因素时这不起作用(如果我理解正确,这已被报告为错误)。谢谢你的热心帮助!

4

2 回答 2

9

经过一番搜索,我想我找到了另一种选择

dataf[2,]<-NA
summary(fit2 <- lm(mpg ~ wt,  data=dataf, na.action="na.exclude"))
dataf$fit2 <- fitted(fit2)

应该做的伎俩。正确的?

于 2012-08-16T15:30:15.443 回答
4
dataf$fit2 <- NA
dataf$fit2[!is.na(dataf$wt)] <- fitted(fit2)
于 2012-08-16T15:28:22.677 回答