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

しかし、2番目の例をどのように機能させるのですか?row.namesinを介して解決策を試しました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 に答える