webentwicklung-frage-antwort-db.com.de

Ersetzen Sie die Werte in R, "Ja" bis 1 und "Nein" bis

Ich arbeite mit einem weatherAUS-Datensatz, der in den R-Bibliotheken verfügbar ist. Ich versuche, "Ja" auf 1 und "Nein" auf 0 in der RainTomorrow-Spalte zu ersetzen.

Ich habe das geschrieben, aber es scheint nicht zu funktionieren:

weather4$RainTomorrow[weather4$RainTomorrow=="Yes"]<-1 

Ich sage nur:

Warnmeldung: In [<-.factor (*tmp*, weather4 $ RainTomorrow == "Ja", Wert = c (NA,: ungültige Faktorstufe, NA generiert

Was bedeutet das und was soll ich tun? Ich denke, ich sollte irgendwo as.numeric oder as.factor verwenden, aber ich weiß nicht wie wirklich.

3
sockevalley

Sie können dies leicht mit Dplyr tun.

require(dplyr)
weather4 <- weather4 %>%
      mutate(RainToday = ifelse(RainToday == "No",0,1))

Hoffe das hilft

4
Nico Coallier
library(data.table)   
weather4[,":="(RainTomorrow=ifelse(RainTomorrow=="no",0,1))]

oder einfach benutzen:

as.numeric(as.factor(weather4$RainTomorrow))
2
Wen-Ben

Dies ist eine ziemlich häufige Sache, wenn man verschiedene Modelle testet. Zum Beispiel funktionieren Entscheidungsbäume gut mit "Ja" und "Nein". Einige Regressionsmodelle verlangen jedoch 1 und 0. Besondere logistische Regression.

Ich habe dies mithilfe der Plyr-Bibliothek gelöst. Es war sehr einfach und bequem. Hier ist meine Lösung.

Ursprung der Lösung ist hier.

library(plyr)
weather5$RainToday <- revalue(weather5$RainToday, c("Yes"=1))
weather5$RainToday <- revalue(weather5$RainToday, c("No"=0))
head(weather5$RainToday)
[1] 0 1 1 1 1 0
Levels: 0 1

Frieden!

0
sockevalley