我正在努力想出一个功能并且卡住了。我需要用随机矩阵运行一个函数(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函数,但我真的不知道如何做到这一点。
答案 0 :(得分:3)
如果所有矩阵都相同(例如相同的维度和相同的变量位置),那么我会将它们存储在3d数组中并使用apply
或rowMeans
等。后者会更快
使用内置数据集:
> 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