2

我有一个矩阵A,我想从每一列中抽取样本A并构造新矩阵。例如:

A = matrix(seq(1,9),3,3)

所以要获得第一个引导矩阵,我将从 的第一列(A即 1、2、3)进行替换(3 次)采样,从 的第二列(A即 4、5、6)进行替换(3 次)采样,并从 的第三列A,即 7、8、9中替换(3 次)样本。之后,我通过组合三个引导向量重新构造第一个引导矩阵 B1。我将重复此过程 B=199 次,以便引导矩阵 B1、...、B199 可用。

我的问题是,我怎样才能让这个程序运行得更快?我应该使用哪个功能?我知道apply本质上涉及for循环,因此无法保证速度。怎么样do.call?谢谢!

4

1 回答 1

5

您可以使用replicateapply

A <- matrix(seq(1,9),3,3)

B <- 199

replicate(B, apply(A, 2, sample, replace = TRUE))
于 2012-11-22T16:27:45.587 回答