Hi, I have a matrix BEE and want to find the row and column numbers of the minimum value in that matrix. The command which(BEE==min(BEE)) returns only one value which, I take, is the position of the minimum in a vector with as many elements as the matrix. Is there a quick and simple way of getting row and column numbers? Thanks, Gonçalo [[alternative HTML version deleted]]
Yes, they've thought of that. which(BEE == min(BEE), arr.ind = TRUE) will do it. Bill Venables CSIRO Laboratories PO Box 120, Cleveland, 4163 AUSTRALIA Office Phone (email preferred): +61 7 3826 7251 Fax (if absolutely necessary): +61 7 3826 7304 Mobile: +61 4 8819 4402 Home Phone: +61 7 3286 7700 mailto:Bill.Venables at csiro.au http://www.cmis.csiro.au/bill.venables/ -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Gon?alo Ferraz Sent: Sunday, 16 March 2008 9:47 AM To: r-help at stat.math.ethz.ch Subject: [R] locating minimum value in matrix Hi, I have a matrix BEE and want to find the row and column numbers of the minimum value in that matrix. The command which(BEE==min(BEE)) returns only one value which, I take, is the position of the minimum in a vector with as many elements as the matrix. Is there a quick and simple way of getting row and column numbers? Thanks, Gon?alo [[alternative HTML version deleted]]
On 3/15/2008 7:47 PM, Gon?alo Ferraz wrote:> Hi, > > I have a matrix BEE and want to find the row and column numbers of > the minimum value in that matrix. > The command > > which(BEE==min(BEE)) > > returns only one value which, I take, is the position of the minimum > in a vector with as many elements as the matrix. > > Is there a quick and simple way of getting row and column numbers?See the second argument to which(). which(BEE==min(BEE), arr.ind=TRUE)> Thanks, > > Gon?alo > > [[alternative HTML version deleted]] > > ------------------------------------------------------------------------ > > ______________________________________________ > 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.-- Chuck Cleland, Ph.D. NDRI, Inc. (www.ndri.org) 71 West 23rd Street, 8th floor New York, NY 10010 tel: (212) 845-4495 (Tu, Th) tel: (732) 512-0171 (M, W, F) fax: (917) 438-0894
Hi, I was looking for a solution to the same problem. I just found something and thought it might be useful to share. Suppose you look for the positions of the minimum value in matrix D. Using a little euclide division solves the problem easily. Here is my code. min(D) Dv=as.vector(D) pos=which.min(Dv) j0=floor(pos/nrow(D))+1 i0=pos%%nrow(D) D[i0,j0] # must equal min(D) Hope this is useful. I. -- View this message in context: http://r.789695.n4.nabble.com/locating-minimum-value-in-matrix-tp850619p3921598.html Sent from the R help mailing list archive at Nabble.com.