Java Mailing List Archive

http://www.r-help.com/

Home » Home (12/2007) » R Help for Statistical Computing »

[R] extracting row means from a list

Andy Bunn

2005-07-19

Replies:

Hello: I'm reading in a series of text files (100 files that are each 2000
rows by 6 columns). I wish to combine the columns (6) of each file (100) and
get the row mean. I'd like to end up with a data.frame of 2000 rows by 6
columns.

foo <- list()
for(i in 1:10){
  # The real data are read in from a series of numbered text files
  foo[[i]] <- data.frame(x1 = rnorm(100), x2 = rnorm(100), x3 =
rnorm(100),
                  x4 = rnorm(100), x5 = rnorm(100), x6 =
rnorm(100))

}

str(foo)
# by hand
mean.x1 <-
rowMeans(cbind(foo[[1]][,1],foo[[2]][,1],foo[[3]][,1],foo[[4]][,1],foo[[5]][
,1]),
                foo[[6]][,1],foo[[7]][,1],foo[[8]][,1],foo[[9]][,1
],foo[[10]][,1]))
mean.x2 <-
rowMeans(cbind(foo[[1]][,2],foo[[2]][,2],foo[[3]][,2],foo[[4]][,2],foo[[5]][
,2]),
                foo[[6]][,2],foo[[7]][,2],foo[[8]][,2],foo[[9]][,2
],foo[[10]][,2]))
# and so on to column 6
mean.x6 <-
rowMeans(cbind(foo[[1]][,6],foo[[2]][,6],foo[[3]][,6],foo[[4]][,6],foo[[5]][
,6]),
                foo[[6]][,6],foo[[7]][,6],foo[[8]][,6],foo[[9]][,6
],foo[[10]][,6]))


I've implemented this with nested loops that create temporary variables and
calc the mean, but the approach is clunky. E.g.,

# nested loops
for(i in 1:ncol(foo[[1]])){
for(j in 1:length(foo)){
  # etc ...
}
}

Is there a way to build a better mouse trap?

TIA, Andy

Thanks, Andy

______________________________________________
R-help@(protected)
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
©2008 r-help.com - Jax Systems, LLC, U.S.A.