[R] remove missing values from matrix or data frame

William Briggs wib2004 at med.cornell.edu
Tue Nov 9 23:08:10 CET 2004


Is there any way besides looping to remove complete rows from a matrix 
or data frame where there is at least one NA in any of the columns?

For example
 > a
        [,1]     [,2]
   [1,] 0        2.6875
   [2,] 8.366667 6.625
   [3,] 15.6     4.375
   [4,] 23.4     6.25
   [5,] 29       5.09375
   [6,] 18       NA
   [7,] 0        4.15625
   [8,] 9.366667 6.25
   [9,] 14.73333 5.875
  [10,] 31.26667 6.15625
  [11,] NA       2.357
  [12,] NA       5.4234
  [13,] 0        3.34375
  [14,] 7.666667 2.78125
  [15,] NA       NA

In a, rows 6, 11, 12, and 15 should be removed.

na.omit(a) does nothing, nor does na.omit(as.data.frame(a)).  I can get 
a matrix of which are NA and not by "i<-!is.na(a)", but this doesn't 
seem to help ("a[i]" isn't the thing I'm after).

I know I am missing something simple and standard, but I haven't been 
able to see it yet (nor on Google).

Thanks.




More information about the R-help mailing list