[BioC] [R] function to find coodinates in an array
François Pinard
pinard at iro.umontreal.ca
Fri Aug 17 05:15:29 CEST 2007
[Ana Conesa]
> I am looking for a function/way to get the array coordinates of given
> elements in an array. What I mean is the following:
> - Let X be a 3D array
> - I find the ordering of the elements of X by ord <- order(X)
> (this returns me a vector)
> - I now want to find the x,y,z coordinates of each element of ord
[Moshe Olshansky]
>If your array's dimensions were KxMxN and the "linear"
>index is i then
>n <- ceiling(i/(K*M))
>i1 <- i - (n-1)*(K*M)
>m <- ceiling(i1/K)
>k <- i1 - (m-1)*K
>and your index is (k,m,n)
The reshape package might be helpful, here. If I understand the problem
correctly, given this artificial example:
X <- sample(1:24)
dim(X) <- c(2, 3, 4)
you would want:
library(reshape)
melt(X)[order(X), -4]
so getting the indices in a three columns data frame.
--
François Pinard http://pinard.progiciels-bpi.ca
More information about the Bioconductor
mailing list