> -----Original Message-----
> From: r-help-boun...@r-project.org [mailto:r-help-bounces@r-
> project.org] On Behalf Of uday
> Sent: Tuesday, February 21, 2012 7:52 AM
> To: r-help@r-project.org
> Subject: [R] removing particular row from matrix
> 
> I have some data set which has some values -999.000 & I would like to
> remove
> whole row of this kind of values.
> 
> e.g
> a<-matrix(c(1,2,3,4,4,5,6,6,-999.99,5,9,-999.00),nrow=4)
> a<-
> [,1]    [,2]     [,3]
> [1,]    1    4  -999.99
> [2,]    2    5    5.00
> [3,]    3    6    9.00
> [4,]    4    6 -999.00
> 
> expected answer
> 
>         [,1] [,2]    [,3]
> [1,]    2    5    5.00
> [2,]    3    6    9.00
> 
> I am new in R & I got stuck with this step.
> 
> Uday
> 

Your example is ambiguous.  You specify that you want to remove rows with value 
of -999.000 from matrix, but then remove a row with value of -999.99.  I don't 
know whether you just have a typographical error or ...

You can eliminate rows using logic with indexing.  Something like this could 
work

a[!(a[,3] %in% (999.99, -999.00)),]

or

a[a[,3] != -999.0,]

or 

a[a[,3] > -999,]

I.e. in the row index position, place logic that is true only for the rows you 
want to keep.  One caveat is that if you are comparing to floating point 
numbers, you should read R FAQ 7.31.

Hope this is helpful,

Dan

Daniel J. Nordlund
Washington State Department of Social and Health Services
Planning, Performance, and Accountability
Research and Data Analysis Division
Olympia, WA 98504-5204

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to