J'ai un cadre de données et certaines colonnes ont NA
valeurs.
Comment puis-je remplacer ces NA
des valeurs avec des zéros ?
J'ai un cadre de données et certaines colonnes ont NA
valeurs.
Comment puis-je remplacer ces NA
des valeurs avec des zéros ?
Voir mon commentaire dans la réponse de @gsk3. Un exemple simple :
> m <- matrix(sample(c(NA, 1:10), 100, replace = TRUE), 10)
> d <- as.data.frame(m)
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 4 3 NA 3 7 6 6 10 6 5
2 9 8 9 5 10 NA 2 1 7 2
3 1 1 6 3 6 NA 1 4 1 6
4 NA 4 NA 7 10 2 NA 4 1 8
5 1 2 4 NA 2 6 2 6 7 4
6 NA 3 NA NA 10 2 1 10 8 4
7 4 4 9 10 9 8 9 4 10 NA
8 5 8 3 2 1 4 5 9 4 7
9 3 9 10 1 9 9 10 5 3 3
10 4 2 2 5 NA 9 7 2 5 5
> d[is.na(d)] <- 0
> d
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 4 3 0 3 7 6 6 10 6 5
2 9 8 9 5 10 0 2 1 7 2
3 1 1 6 3 6 0 1 4 1 6
4 0 4 0 7 10 2 0 4 1 8
5 1 2 4 0 2 6 2 6 7 4
6 0 3 0 0 10 2 1 10 8 4
7 4 4 9 10 9 8 9 4 10 0
8 5 8 3 2 1 4 5 9 4 7
9 3 9 10 1 9 9 10 5 3 3
10 4 2 2 5 0 9 7 2 5 5
Il n'est pas nécessaire de postuler apply
. =)
EDIT
Vous devriez également jeter un coup d'œil à norm
paquet. Il possède de nombreuses fonctionnalités intéressantes pour l'analyse des données manquantes. =)
J'ai déjà essayé ce code hier avant que vous le postiez et ça n'a pas marché. Parce que cela j'ai posté la question. Mais j'ai essayé de savoir et a travaillé parfaitement. Je pense que je faisais quelque chose de mal.
@RenatoDinhaniConceição : si vous avez déjà essayé quelque chose, il est utile de partager cette information lorsque vous posez la question ; cela permet de préciser où se situe le problème.
d[is.na(d)] <- 0 n'a pas de sens pour moi. Cela semble inversé ? Comment R traite-t-il cette déclaration ?
is.na
est une fonction générique, et possède des méthodes pour les objets de la catégorie data.frame
donc celui-ci fonctionnera également sur data.frame
s !
Quand j'ai couru methods(is.na)
pour la première fois, j'étais comme whaaa ?!? . J'adore quand des trucs comme ça arrivent ! =)
Supposons que vous avez un cadre de données nommé df au lieu d'un vecteur unique et que vous voulez juste remplacer les observations manquantes dans une seule colonne nommée X3. Vous pouvez le faire avec cette ligne : df$X3[is.na(df$X3)] <- 0
Exemple de dplyr :
library(dplyr)
df1 <- df1 %>%
mutate(myCol1 = if_else(is.na(myCol1), 0, myCol1))
Note : Cela fonctionne par colonne sélectionnée, si nous avons besoin de le faire pour toutes les colonnes, voir @reidjax Réponse de l'entreprise en utilisant muté_chaque .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
16 votes
petite modification de stackoverflow.com/questions/7279089/ (que j'ai trouvé en cherchant "[r] remplacer NA par zéro") ...
36 votes
d[is.na(d)] <- 0