[R] how to calculate means of matrix elements
Chris Stubben
stubben at lanl.gov
Tue May 19 06:12:34 CEST 2009
dxc13 wrote:
>
> If these three matrices are given in separate text files, how can I
> write code that will get this result I need?
>
If you have matrices in separate text files like mat1.txt, mat2.txt,
mat3.txt, you could load them into a list using a loop
x<- vector('list', 3)
for ( i in 1:3)
{
## you may to change some default options for read.table
x[[i]]<-as.matrix(read.table(paste( 'mat', i, '.txt', sep='')))
}
Then write a function to calculate the mean of a list of matrices
mean(x)
# Paste this function into R before running mean(x) – its also included in
the popbio package
mean.list<-function (x, ...)
{
if (!all(sapply(x, is.matrix)))
stop("'x' must be a list containing matrices")
dims <- sapply(x, dim)
n <- dims[1, 1]
p <- dims[2, 1]
if (!all(n == dims[1, ]) || !all(p == dims[2, ]))
stop("the matrices must have the same dimensions")
mat <- matrix(unlist(x), n * p, length(x))
mm <- matrix(rowMeans(mat, ...), n, p)
dimnames(mm) <- dimnames(x[[1]])
mm
}
Chris Stubben
--
View this message in context: http://www.nabble.com/how-to-calculate-means-of-matrix-elements-tp23607694p23609472.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list