web-dev-qa-db-fra.com

R Changer les valeurs NA

Mes données ressemblent à ceci: http://imgur.com/8KgvWvP

Je veux changer les valeurs NA en une autre valeur pour chaque colonne. Par exemple, dans la colonne qui contient NA, Single et Dual, je souhaite remplacer tous les NA par 'Single'.

J'ai essayé ce code:

data_price$nbrSims <- ifelse(is.na(data_price$nbrSims), 'Single', data_price$nbrSims)

Mais alors mes données ressemblent à ceci, où Dual est devenu 2 et Single1. http://imgur.com/TC1bIgw

Comment puis-je changer les valeurs NA, sans changer les autres valeurs? Merci d'avance!

8
GerritCalle

Essayez ceci (vérifiez qui sont NA et remplacez-les par "Single"):

data_price$nbrSims <- as.character(data_price$nbrSims)
data_price$nbrSims[is.na(data_price$nbrSims)] <- "Single"
7
Marta

La raison pour laquelle nous avons obtenu les valeurs entières 1 et 2 après l'instruction ifelse est que la colonne est une classe factor. Nous le convertissons en classe character et cela devrait fonctionner correctement

 data_price$nbrSims <- as.character(data_price$nbrSims)
 data_price$nbrSims <- ifelse(is.na(data_price$nbrSims), 
             'Single', data_price$nbrSims)
5
akrun

Pour être clair, la réponse de Marta est juste.

Vous pouvez également modifier toutes les valeurs Na avec ce

data_price[is.na(data_price)]<-"Something"
4
DanieleO