存储data.frames和计算平均值的函数?

时间:2013-11-04 10:56:16

标签: r dataframe plyr mean

我正在努力想出一个功能并且卡住了。我需要用随机矩阵运行一个函数(ses.mpd)1000次。应存储输出(data.frames),然后计算一个带有1000个输出data.frames的data.frame。

示例:

输出data.frames

        ntaxa  mpd.obs  mpd.rand.mean  mpd.rand.sd
sample1   3       10         9               0.2
sample2   6       15         12              0.6
sample3   4       9          10              0.1


        ntaxa  mpd.obs  mpd.rand.mean  mpd.rand.sd
sample1   6       12         10              0.5
sample2   4       12         15              0.3
sample3   7       4          7               0.3

结果data.frame应该如下所示

       ntaxa  mpd.obs  mpd.rand.mean  mpd.rand.sd
sample1   4.5     11         9.5            0.35
sample2   5       13.5       13.5           0.45
sample3   5.5     6.5        8.5            0.2

我想我已经将1000个data.frames保存在一个列表中,然后可能在plyr中使用ddply函数,但我真的不知道如何做到这一点。

1 个答案:

答案 0 :(得分:3)

如果所有矩阵都相同(例如相同的维度和相同的变量位置),那么我会将它们存储在3d数组中并使用applyrowMeans等。后者会更快

使用内置数据集:

> dim(UCBAdmissions)
[1] 2 2 6
> rowMeans( UCBAdmissions, dims=c(2)  )
          Gender
Admit          Male    Female
  Admitted 199.6667  92.83333
  Rejected 248.8333 213.00000