[R] Efficient computation of average covariance matrix over a list

Rick DeShon deshon at msu.edu
Mon Dec 3 22:02:30 CET 2007

Hi All.

I would like to compute a separate covariance matrix for a set of
variables for each of the levels of a factor and then compute the
average covariance matrix over the factor levels.  I can loop through
this computation but I need to perform the calculation for a large
number of levels and am looking for something more elegant.  To be

u    <- 3
n    <- 10

x    <- rnorm((id*u))
y    <- rnorm((id*u))
z    <- rnorm((id*u))
id   <- gl(u,n)

df   <- data.frame(id,x,y,z)
df.s <- split(xxx,id)

lcov <- lapply(df.s,cov)

What's an efficient way to compute the average covariance matrix over
the list members in "lcov"?

Thanks in advance,

Rick DeShon

More information about the R-help mailing list