0

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

例子:

输出数据.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 函数,但我真的不知道如何做到这一点。

4

1 回答 1

3

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

使用内置数据集:

> 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
于 2013-11-04T11:01:06.680 回答