Re: [R] transformation matrice of vector into array

From: Tony Plate <tplate_at_acm.org>
Date: Fri 28 Jul 2006 - 00:59:44 EST

Here's a way to convert a matrix of vectors like you have into an array:

 > x <- array(lapply(seq(0,len=6,by=4), "+", c(a=1,b=2,c=3,d=4)), dim=c(2,3), dimnames=list(c("X","Y"),c("e","f","g")))  > x
   e f g

X Numeric,4 Numeric,4 Numeric,4
Y Numeric,4 Numeric,4 Numeric,4
 > x[["Y","e"]]

a b c d
5 6 7 8
 > xa <- array(unlist(x, use.names=F), dim=c(length(x[[1,1]]),dim(x)), dimnames=c(list(names(x[[1,1]])),dimnames(x)))  > x["Y","e"]
[[1]]
a b c d
5 6 7 8

 > xa[,"Y","e"]
a b c d
5 6 7 8
 >

Then you can do whatever sums you want over the array.

I have not extensively checked the above code, and if I were going to use it, I would do numerous spot checks of elements to make sure all the elements are going to the right places -- it's not too difficult to make mistakes when pulling apart and reassembling arrays like this. (For simpler cases involving lists of vectors or matrices, the abind() function can help.)

Jessica Gervais wrote:
> Hi,
>
> I need some help
>
> I have a matrix M(m,n) in which each element is a vector V of lenght 6
> 1 2 3 4 5 6 7
> 1 List,6 List,6 List,6 List,6 List,6 List,6 List,6
> 2 List,6 List,6 List,6 List,6 List,6 List,6 List,6
> 3 List,6 List,6 List,6 List,6 List,6 List,6 List,6
> 4 List,6 List,6 List,6 List,6 List,6 List,6 List,6
>
>
> i would like to make the sum on the matrix of each element of the
> matrix, that is to say
> sum(on the matrix)(M[j,][[j]][[1]])
> sum(on the matrix)(M[j,][[j]][[2]])
> ...
> sum(on the matrix)(M[j,][[j]][[6]])
>
> I don't really know how to do.
> I thought it was possible to transform the matrix M into an array A of
> dimension (m,n,6), and then use the command sum(colsums(A[,,1]), which
> seems to be possible and quite fast.
> ...but I don't know how to convert a matrix of vector into an array....
>
> As anyone any little idea about that ?
>
> Thanks by advance
>
> Jessica
>
> ______________________________________________
> R-help@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
> and provide commented, minimal, self-contained, reproducible code.
>



R-help@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 and provide commented, minimal, self-contained, reproducible code. Received on Fri Jul 28 01:05:50 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Fri 28 Jul 2006 - 02:21:11 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.