Hi Everyone,

Thanks to everyone for their help. With your suggestions and some poking 
around, the following works for what I need. It basically adds all the matrices 
elementwise, and adds nothing if the element is NA. Thanks again! Code below:


******************************
mymats <- vector('list', 5)
set.seed(246)

# Generate a list of five 3 x 3 matrices
for(i in 1:5) mymats[[i]] <- matrix(sample(1:9), nrow = 3)

mymats[[5]][1,1]<-NA
mymats[[4]][2,2]<-NA
mymats

matrixadder<-function(u,v){
        na.u<-is.na(u)
        na.v<-is.na(v)  
        ifelse(na.u & na.v, NA, ifelse(na.u, 0, u)+ ifelse(na.v,0,v))   
}

Reduce('matrixadder',mymats)
******************************

Cheers,
Greg




On Sep 12, 2010, at 8:33 PM, Ben Bolker wrote:

> My next suggestion (I don't have time to work out or test an example
> at the moment):
> 
> library(abind)
> tmparr <- abind(m1,m2,m3,...,along=3)
>  OR
> tmparr <- do.call(c(matlist,list(along=3)))
> apply(tmparr,c(1,2),mean,na.rm=TRUE)
> 
>  or something along those lines.
> 
> ______________________________________________
> R-help@r-project.org 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.


        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org 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.

Reply via email to