2011-05-26 8 views
43

possible en double:
R - remove rows with NAs in data.frameComment supprimer "rows" avec une valeur NA?

Comment puis-je supprimer rapidement "lignes" dans une trame de données d'une valeur NA dans l'une des colonnes?

Alors

 x1 x2 
[1,] 1 100 
[2,] 2 NA 
[3,] 3 300 
[4,] NA 400 
[5,] 5 500 

devrait se traduire par:

 x1 x2 
[1,] 1 100 
[3,] 3 300 
[5,] 5 500 
+2

Voir les réponses il y a une solution à votre problème. Et sachez que vous nous montrez une matrice et non un dataframe. –

+2

Veuillez au moins * tenter * de rechercher votre réponse ici (en ajoutant '[r]' pour chercher dans les questions R), via Rseek.org ou autrement. –

+0

Cette question ne concerne-t-elle pas TOUTES les valeurs de la ligne étant NA? et éventuellement NA dans des colonnes spécifiques? En tant que tel, c'est une question légèrement différente (et plus facile). Comme d'habitude avec des applications faciles et dures du même concept, on peut en déduire la réponse facile du hard, mais ça peut être dur :) –

Répondre

76
dat <- data.frame(x1 = c(1,2,3, NA, 5), x2 = c(100, NA, 300, 400, 500)) 

na.omit(dat) 
    x1 x2 
1 1 100 
3 3 300 
5 5 500 
+0

Dans mon cas, ça ne marche pas! 'df <-structure (liste (vars = structure (1: 5, .Label = c (" a "," b ", " v "," d "," e "," s "," ds " ), '1' = c (NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), '2' = c (SO, 0,9, NA, NA, NA), '3' = c (NA_real_, NA_real_, NA_real_, NA_real_, NA_real_)), .Names = c ("vars", "1", "2", "3"), row.names = c (NA, 5L), classe = "data.frame") ' –

Questions connexes