[R] matrix element position: from length to dim
R. Michael Weylandt
michael.weylandt at gmail.com
Thu Feb 2 15:22:03 CET 2012
Also take a look at the arrayInd() function which is what's used by
which() internally for the arr.ind = TRUE case.
Michael
On Thu, Feb 2, 2012 at 8:25 AM, Petr Savicky <savicky at cs.cas.cz> wrote:
> 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 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.
More information about the R-help
mailing list