Fehler mit predict und glm.predict in R
Das Problem
Ich habe eine lineare Regression in R trainiert, um vorherzusagenthis.target
voncity
Variablen im Datenrahmendata
. Dieses Training wird für eine Teilmenge der Daten durchgeführt, die durch angegeben wirdtrain.index
.
model = glm('data[, this.target] ~ data$city', data = data, subset = train.index)
Ich versuche, dieses Modell an den durch angegebenen Daten zu testentest.index
.
predictions = predict(model, data[test.index, ])
Aus welchem Grund auch immer, dieser zweite Schritt erzeugt einen Fehler und eine Warnung.
Error in model.frame.default(Terms, newdata, na.action = na.action, xlev =
object$xlevels) : invalid type (NULL) for variable 'data$city' In addition:
Warning message: 'newdata' had 22313 rows but variables found have 0 rows
Meine Analyse
data$city
ist ein Faktor von 4 Stufen, aber es scheint, als würde R ihn als "ungültigen Typ (NULL)" lesen, obwohl keine der Beobachtungen in dieser Variablen NULL sind.
Außerdem scheint es, als würde R die Zeilen, aber nicht die Spalten des Trainingssatzes korrekt lesen.dim(data[test.index, ])
ergibt einen Vektor mit 22313 und 12.