R ifelse de remplacer des valeurs dans une colonne
J'ai une colonne dans mon dataframe comme suit:
Private
Private
Private
?
Private
Je veux remplacer ce " ?" avec le Privé. J'ai une solution comme suit:
# Only replacing ? with Private
df$var <- ifelse(df$var == " ?", " Private", df$var)
Cependant quand j'imprime le df$var
colonne après la ifelse déclaration, ces valeurs ne semblent pas correctes. C'est ce que j'ai:
3
3
3
Private
3
Je ne sais pas ce qui s'est passé ici.
- Essayez
df$var <- as.character(df$var); df$var <- ifelse(df$var == " ?", " Private", df$var)
. La variable est probablement un facteur. - Vous êtes de droite. Merci!!!!
- Si vous ne souhaitez remplacer le " ?", il peut être plus efficace d'utiliser
df$var[df$var==" ?"] <- "Private"
.
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner, en utilisant l'exemple de travail:
Puis ce sera de remplacer les valeurs de "?" par "Privé"
La raison de votre remplacement ne fonctionne pas (je pense) est que si la valeur de
df$var
n'est pas"?"
puis il remplace l'élément de vecteur avec l'ensemble de ladf$var
colonne, et pas seulement de la réinsertion de l'élément que vous souhaitez.Il ressemble à la ifelse rechange retourne un entier qui pourrait être interprété comme un niveau ... essayez
JCollerton la solution devrait bien fonctionner, mais si vous insistez à l'aide de si de tresorerie, vous devrez le faire dans une boucle for: