On Sep 10, 2009, at 1:34 PM, annie Zhang wrote:

Hi, All,

How can I get the indices of the minimum elements in a matrix without using
a loop?

For example, if the matrix is

4 5 2
2 8 9
5 2 3

Then I want to output (1,3), (2,1), (3,2).

Thanks,

Annie


mat <- matrix(c(4, 2, 5, 5, 8, 2, 2, 9, 3), 3)

> mat
     [,1] [,2] [,3]
[1,]    4    5    2
[2,]    2    8    9
[3,]    5    2    3


> which(mat == min(mat), arr.ind = TRUE)
     row col
[1,]   2   1
[2,]   3   2
[3,]   1   3


See ?which and take note of the arr.ind argument.

HTH,

Marc Schwartz

______________________________________________
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