Anwendung von lm() und predict (), um mehrere Spalten in einem data frame

Habe ich ein Beispiel-dataset unten.

train<-data.frame(x1 = c(4,5,6,4,3,5), x2 = c(4,2,4,0,5,4), x3 = c(1,1,1,0,0,1),
                  x4 = c(1,0,1,1,0,0), x5 = c(0,0,0,1,1,1))

Angenommen, ich möchte erstellen Sie separate Modelle für die Spalte x3, x4, x5 basierend auf Spalte x1 und x2. Zum Beispiel

lm1 <- lm(x3 ~ x1 + x2)
lm2 <- lm(x4 ~ x1 + x2)
lm3 <- lm(x5 ~ x1 + x2) 

Ich will nehmen Sie dann diese Modelle und wenden Sie Sie, um einen Testsatz mit Vorhersagen, und erstellen Sie dann eine matrix, die hat jedes Modell Ergebnis als eine Spalte.

test <- data.frame(x1 = c(4,3,2,1,5,6), x2 = c(4,2,1,6,8,5))
p1 <- predict(lm1, newdata = test)
p2 <- predict(lm2, newdata = test)
p3 <- predict(lm3, newdata = test)
final <- cbind(p1, p2, p3)

Dies ist eine vereinfachte version, wo Sie es tun können, Schritt für Schritt, die eigentlichen Daten ist viel zu groß. Gibt es eine Möglichkeit so eine Funktion zu erstellen oder verwenden Sie eine for-Anweisung, kombinieren diese in einem oder in zwei Schritten?

InformationsquelleAutor SRB | 2016-11-21

Schreibe einen Kommentar