try this:

DF.lis <- list(
    one = data.frame(x = c(1,2,3), y = c(1,2,2), z = c(3,1,1)),
    two = data.frame(x = c(2,5,2), y = c(2,3,1), z = c(4,1,2))
)

Reduce("+", DF.lis) / length(DF.lis)


I hope it helps.

Best,
Dimitris


On 11/24/2010 8:37 PM, Tim Howard wrote:
R users,
This probably involves a simple incantation of one of the flavors of apply... 
that I can't yet figure out. Consider a list of data frames. I'd like to apply 
a function (mean) across the list and return a dataframe of the same dimensions 
where each cell represents the mean of that cell across all dataframes.

# set up the list
x<- vector("list",2)
names(x)<- c("one","two")
# add data to the list
for(i in 1:2){
  y = i^2
  x[[i]]<- 
data.frame("a"=c(y,2*y,3*y),"b"=c(y+1,y+2,y+3),"c"=c(2*y+1,2*y+2,2*y+3))
  }
#show the list
x
$one
   a b c
1 1 2 3
2 2 3 4
3 3 4 5

$two
    a b  c
1  4 5  9
2  8 6 10
3 12 7 11
#the result should be
  a b c
1 2.5 3.5 6
2 5 4.5 7
3 7.5 5.5 8

Can anyone direct me down the right path?

Thanks in advance
Tim Howard




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


--
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014
Web: http://www.erasmusmc.nl/biostatistiek/

______________________________________________
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