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

ali*_*boy 2 r statistics-bootstrap

我有一个矩阵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?谢谢!

Sve*_*ein 5

你可以使用replicateapply:

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

B <- 199

replicate(B, apply(A, 2, sample, replace = TRUE))
Run Code Online (Sandbox Code Playgroud)