juhana vartiainen
2005-Apr-26 04:16 UTC
[R] Index matrix to pick elements from 3-dimensional matrix
Hi all Suppose I have a dim=c(2,2,3) matrix A, say: A[,,1]a b c d A[,,2]e f g h A[,,3]i j k l Suppose that I want to create a 2x2 matrix X, which picks elements from the above-mentioned submatrices according to an index matrix J referring to the "depth" dimension: J1 3 2 3 In other words, I want X to be Xa j g l since the matrix J says that the (1,1)-element should be picked from A[,,1], the (1,2)-element should be picked from A[,,3], etc. I have A and I have J. Is there an expression in A and J that creates X? Thanks Juhana juhana at fief.se -- Juhana Vartiainen docent in economics Director, FIEF (Trade Union Foundation for Economic Research, Stockholm), http://www.fief.se gsm +46 70 360 9915 office +46 8 696 9915 email juhana at fief.se homepage http://www.fief.se/staff/Juhana/index.html
Robin Hankin
2005-Apr-26 07:45 UTC
[R] Index matrix to pick elements from 3-dimensional matrix
Hello Juhana try this (but there must be a better way!) stratified.select <- function(A,J){ out <- sapply(J,function(i){sample(A[,,i],1)}) attributes(out) <- attributes(J) return(out) } A <- array(letters[1:12],c(2,2,3)) J <- matrix(c(1,2,3,3),2,2) R> stratified.select(A,J) [,1] [,2] [1,] "b" "i" [2,] "g" "k" R> stratified.select(A,J) [,1] [,2] [1,] "d" "j" [2,] "f" "l" R> best wishes Robin On Apr 26, 2005, at 05:16 am, juhana vartiainen wrote:> Hi all > > Suppose I have a dim=c(2,2,3) matrix A, say: > > A[,,1]> a b > c d > > A[,,2]> e f > g h > > A[,,3]> i j > k l > > Suppose that I want to create a 2x2 matrix X, which picks elements > from the above-mentioned submatrices according to an index matrix J > referring to the "depth" dimension: > J> 1 3 > 2 3 > > In other words, I want X to be > X> a j > g l > > since the matrix J says that the (1,1)-element should be picked from > A[,,1], the (1,2)-element should be picked from A[,,3], etc. > > I have A and I have J. Is there an expression in A and J that creates > X? > > Thanks > > Juhana > > juhana at fief.se > > -- > Juhana Vartiainen > > docent in economics > Director, FIEF (Trade Union Foundation for Economic Research, > Stockholm), http://www.fief.se > gsm +46 70 360 9915 > office +46 8 696 9915 > email juhana at fief.se > homepage http://www.fief.se/staff/Juhana/index.html > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > >-- Robin Hankin Uncertainty Analyst Southampton Oceanography Centre European Way, Southampton SO14 3ZH, UK tel 023-8059-7743