[R] remove missing values from matrix or data frame

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Nov 9 23:29:18 CET 2004


Something is not as it seems:

> a <- matrix(scan(),,2,byrow=T)
1:  0        2.6875
3:  8.366667 6.625
5:  15.6     4.375
7:  23.4     6.25
9:  29       5.09375
11:  18       NA
13:  0        4.15625
15:  9.366667 6.25
17:  14.73333 5.875
19:  31.26667 6.15625
21:  NA       2.357
23:  NA       5.4234
25:  0        3.34375
27:  7.666667 2.78125
29:  NA       NA
31:
Read 30 items

and a looks like yours and

> na.omit(a)
           [,1]    [,2]
 [1,]  0.000000 2.68750
 [2,]  8.366667 6.62500
 [3,] 15.600000 4.37500
 [4,] 23.400000 6.25000
 [5,] 29.000000 5.09375
 [6,]  0.000000 4.15625
 [7,]  9.366667 6.25000
 [8,] 14.733330 5.87500
 [9,] 31.266670 6.15625
[10,]  0.000000 3.34375
[11,]  7.666667 2.78125
attr(,"na.action")
[1] 11 12 15  6
attr(,"class")
[1] "omit"

does something, in fact what you asked for.

So what is a?  What does str(a) say about it?


On Tue, 9 Nov 2004, William Briggs wrote:

> 
> 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.
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> 
> 

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list