用于在R中以矩阵形式生成自举样本的快速函数

时间:2012-11-22 16:20:54

标签: r statistics-bootstrap

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

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

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

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

1 个答案:

答案 0 :(得分:5)

您可以使用replicateapply

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

B <- 199

replicate(B, apply(A, 2, sample, replace = TRUE))