On Thu, Feb 02, 2012 at 02:08:37PM +0100, Ana wrote: > How can I pass from position in length inside a matrix to position in dim ? > > > a=matrix(c(1:999),nrow=9) > > which(a==87) #position in length 1:length(a) > 87 > > which(a==87,arr.ind=TRUE) #position in dim > row col > [1,] 6 10
Hi. Assume d <- dim(a) i <- 87 Try the following two approaches. 1. x <- rep(FALSE, times=prod(d)) x[i] <- TRUE which(array(x, dim=d), arr.ind=TRUE) row col [1,] 6 10 2. c((i - 1) %% d[1], (i - 1) %/% d[1]) + 1 [1] 6 10 Hope this helps. Petr Savicky. ______________________________________________ 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.