Frage In R, wie fügt man dem ursprünglichen Datenrahmen die angepasste Wertspalte hinzu?


Ich habe ein multiples Regressionsmodell. Ich möchte die angepassten Werte und Residuen zum Original hinzufügen data.frame als zwei neue Spalten. Wie kann ich das erreichen? Mein Modell in R ist so:

BD_lm <- lm(y ~ x1+x2+x3+x4+x5+x6, data=BD)
summary(BD)

Ich habe auch den angepassten Wert

BD_fit<-fitted(BD_lm)

Aber ich möchte das hinzufügen BD_fit Werte als eine Spalte zu meinen ursprünglichen Daten BD. Ich weiß nicht wie. Als ich versuchte anzurufen BD_fitEs gab mir nur eine Menge Zahlen. Ich führe einen großen Datensatz, so dass es schwierig ist, sie alle hier aufzulisten.


5
2017-09-28 09:09


Ursprung


Antworten:


Annehmen:

fm <- lm(demand ~ Time, BOD)

Dann versuchen Sie Folgendes:

cbind(BOD, resid = resid(fm), fitted = fitted(fm))

oder dieses:

BOD$resid <- resid(fm)
BOD$fitted <- fitted(fm)

HINZUGEFÜGT:

Wenn Sie haben NA Werte in demand dann werden Ihre angepassten Werte und Residuen eine andere Länge haben als die Anzahl der Zeilen Ihrer Daten, was bedeutet, dass das obige nicht funktioniert. In einem solchen Fall verwenden Sie: na.exclude so was:

BOD$demand[3] <- NA # set up test data
fm <- lm(demand ~ Time, BOD, na.action = na.exclude)

na.exclude wird automatisch die Vorhersagen und Residuen mit auffüllen NA Werte so, dass sie die gleiche Länge wie die ursprünglichen Daten haben. Jetzt sollten die vorherigen Zeilen funktionieren.


12
2017-09-28 10:32



Obwohl Sie Ihren Fall nicht genau kennen, ist das Hinzufügen zu einem Datenrahmen ziemlich einfach. Sie könnten nur so eine neue Spalte hinzufügen:

df <- data.frame(var1=1:10)
df$var2 <- 11:20

Sie müssen nur sicherstellen, dass Ihre zusätzlichen Datenspalten die gleiche Länge wie die ursprünglichen haben. Andernfalls können Sie sie nicht zu Ihrem Datenrahmen hinzufügen.


0
2017-09-28 09:41



BD_fit<-data.frame(BD_fit)
BD$fit<-BD_fit[1]

0
2017-09-30 22:29