【发布时间】:2014-01-18 23:32:27
【问题描述】:
我有一个具有相同维度的矩阵列表,例如:
mat.list=rep(list(matrix(rnorm(n=12,mean=1,sd=1), nrow = 3, ncol=4)),3)
我想做的是从列表中的每个矩阵中对随机列进行多次采样,例如在给定的样本中,要采样的列索引是:
set.seed(10) #for reproducibility
idx.vec = sample(1:ncol(mat.list[[1]]),length(mat.list))
而这个function 将返回一个采样列的矩阵:
sample.mat = mapply('[', mat.list, TRUE, idx.vec)
对于每个这样的样本矩阵,我想计算每一行的均值和方差。因此,结果将是样本均值的矩阵和样本方差的矩阵,这样这些矩阵的维度将是列表中矩阵的行数乘以样本数。
最有效(时间和空间)的方法是什么?
【问题讨论】: