[R] Find the 50 highest values in a matrix

Nikhil Kaza nikhil.list at gmail.com
Fri Jun 18 08:52:14 CEST 2010


Matrix is just a vector. So order should work
haven't verified the following code.

a <- matrix(rnorm(4000*2000), 4000, 2000)
b <- order(a, na.last=TRUE, decreasing=TRUE)[1:50]

use %% or %/% to get the row# and column #s


Nikhil Kaza
Asst. Professor,
City and Regional Planning
University of North Carolina

nikhil.list at gmail.com

On Jun 18, 2010, at 1:41 AM, uschlecht wrote:

>
> Hi,
>
> I have a huge matrix (4000 * 2000 data points) and I would like to  
> retrieve
> the coordinates (column and row) for the top 50 (or x) values. Some
> positions in the matrix have NA as a value. These should be discarded.
>
> My current method is to replace all NAs by 0, then rank all the  
> values and
> then extract the positions with the 50 highest ranks. It is very
> time-consuming!
>
> Is there a simpler way to do this?
>
> Thank you,
> Ulrich
>
> -- 
> View this message in context: http://r.789695.n4.nabble.com/Find-the-50-highest-values-in-a-matrix-tp2259721p2259721.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at 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.
b - b%%nrow(a)



More information about the R-help mailing list