2016-05-21 8 views
0

Ich möchte unter der Lage sein, auf meine Zielvariable ‚def_target‘ außerhalb des Regressions Code zu definieren:definieren Zielvariable in glm r

model1 <- glm(def_target~., family=binomial(link='logit'),data=train70) 

Ich habe versucht, die folgenden aber bekommen ein Fehler

tv1 <- 'def_target' 
model1 <- glm(tv1~., family=binomial(link='logit'),data=train70) 
Pop-up

Wenn mir jemand helfen könnte, wäre das toll.

Dank

+0

Welche Art von Fehlermeldung erhalten Sie? und kannst du den ganzen Code posten? – patrick

+0

Das ist der Fehler: Fehler in model.frame.default (Formel = tv1 ~., Daten = train70, drop.unused.levels = TRUE): variable Längen unterscheiden sich (gefunden für 'Monthly_turn') Wenn ich tv1 entferne und ersetze Mit def_target läuft der Code gut. Danke – sandeep

+0

bewegt, um zu antworten – patrick

Antwort

0

ich denke, es kippen könnte führen, dass Sie es in Ihrem model1 sagen: glm(tv1~., family=binomial(link='logit'),data=train70). train70 hat keine übereinstimmende Spalte. Versuchen Sie, Ihre Variable direkt zuweisen, das heißt

tv1 <- train70[['def_target']] 

dann

model1 <- glm(tv1~., family=binomial(link='logit')) 

Ich muss zugeben, dass ich mit dem nicht vertraut bin "" du hast da drin. Aber stellen Sie sicher, dass Sie das wie bei tv1 mit Ihrem ursprünglichen Datensatz verknüpfen.

0

glm() erfordert, dass das erste Argument der Klasse "forumla" lautet, und das einfache Einfügen einer Zeichenfolge (d. H. 'def_target') wird nicht korrekt analysiert. Sie müssen das Argument in eine Formel umwandeln, indem Sie as.formula() verwenden, aber die gesamte Formel, die Sie verwenden möchten, muss enthalten sein. Hier ist Code, der funktioniert:

model1 <- glm(as.formula(paste(tv1," ~ .")), family=binomial(link='logit'), data=train70) 
+0

Vielen Dank für Ihre Hilfe – sandeep

Verwandte Themen