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