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.