From: Tony Plate <tplate_at_acm.org>

Date: Fri 28 Jul 2006 - 00:59:44 EST

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

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

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.)

- Tony Plate

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.
*