数据帧列表中元素的平均值

假设我有一个data.frames列表(行和列相等)

dat1<-as.data.frame(矩阵(rnorm(25),ncol=5))
dat2<-as.data.frame(矩阵(rnorm(25),ncol=5))
dat3<-as.data.frame(矩阵(rnorm(25),ncol=5))
all.dat<-列表(dat1=dat1,dat2=dat2,dat3=dat3)

如何返回单个data.frame,即列表中每个元素的平均值(或总和等)(例如,列表1、2、3等中第一行和第一列的平均值)?我在plyr中尝试了lappyldply,但它们返回列表中每个data.frame的统计信息

编辑:由于某种原因,这被重新标记为家庭作业。这两方面都不重要,但这不是一个家庭作业问题。我只是不知道为什么我不能让它工作。谢谢你的洞察力

编辑2:进一步澄清:
我可以使用循环获得结果,但我希望有一种方法(一种更简单、更快的方法,因为我使用的数据具有12行乘100列的data.frames,并且有1000+个这些数据帧的列表)

z<-矩阵(0,nrow(所有数据$dat1),ncol(所有数据$dat1))
对于(1:nrow中的l(所有数据$dat1)){
适用于(1分m:ncol(全部dat$dat1)){
z[l,m]<-平均值(未列出(lappy(all.dat,`[`,i=l,j=m)))
}
}

通过以下方式:

>z
[,1]        [,2]        [,3]        [,4]       [,5]
[1,] -0.64185488  0.06220447 -0.02153806  0.83567173  0.3978507
[2,] -0.27953054 -0.19567085  0.45718399 -0.02823715  0.4932950
[3,]  0.40506666  0.95157856  1.00017954  0.57434125 -0.5969884
[4,]  0.71972821 -0.29190645  0.16257478 -0.08897047  0.9703909
[5,] -0.05570302  0.62045662  0.93427522 -0.55295824  0.7064439

我想知道是否有一种更简单、更快的方法来完成这个任务。谢谢

这是一个带有plyr的单行程序。您可以用任何其他想要的函数替换mean

ans1=aApply(laply(all.dat,as.matrix),c(2,3),平均值)

发表评论