web-dev-qa-db-fra.com

Remplacer les valeurs de R, "Oui" à 1 et "Non" à 0

Je travaille avec l'ensemble de données weatherAUS qui est disponible dans les bibliothèques R. J'essaie de remplacer "Oui" par 1 et "Non" par 0 dans la colonne RainTomorrow.

J'ai écrit ceci mais cela ne semble pas fonctionner:

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

Je dis juste:

Message d'avertissement: dans [<-.factor (*tmp*, weather4 $ RainTomorrow == "Oui", valeur = c (NA,: niveau de facteur non valide, NA généré

Qu'est-ce que cela signifie et que dois-je faire? Je pense que je devrais utiliser as.numeric ou as.factor quelque part mais je ne sais pas vraiment comment.

5
sockevalley

Vous pouvez facilement le faire avec dplyr.

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

J'espère que cela t'aides

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

ou utilisez simplement:

as.numeric(as.factor(weather4$RainTomorrow))
3
YOBEN_S

C'est une chose assez courante lorsque l'on teste différents modèles. Par exemple, les arbres de décision fonctionnent bien avec "Oui" et "Non". Cependant, certains modèles de régression exigent 1 et 0. Régression logistique particulière.

J'ai résolu cela en utilisant la bibliothèque plyr. C'était extrêmement simple et pratique. Voici ma solution.

L'origine de la solution est ici.

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

Paix!

2
sockevalley