如何从填充了1和0的矩阵中取样n个随机点?
a=rep(0:1,5)
b=rep(0,10)
c=rep(1,10)
dataset=matrix(cbind(a,b,c),nrow=10,ncol=3)
dataset
[,1] [,2] [,3]
[1,] 0 0 1
[2,] 1 0 1
[3,] 0 0 1
[4,] 1 0 1
[5,] 0 0 1
[6,] 1 0 1
[7,] 0 0 1
[8,] 1 0 1
[9,] 0 0 1
[10,] 1 0 1
Run Code Online (Sandbox Code Playgroud)
我想确定我的N个样本的位置(行,col)是随机的.
我知道,sample {base}但它似乎不允许我这样做,我知道的其他方法是空间方法将迫使我添加x,y并将其更改为空间对象并再次返回到正常矩阵.
更多信息
随机意味着我也意味着在"矩阵空间"内部传播,例如,如果我对4个点进行采样,我不希望得到4个相邻点,我希望它们在"矩阵空间"中传播.
知道矩阵中我取出随机点的位置(行,列)也很重要.
我有一个矩阵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?谢谢!