如何从R中的矩阵中重复选择行的样本?

Hen*_* B. 19 random r

如何从R中的矩阵中重复选择行的样本?

所以要清楚,我将从一个矩阵开始,例如,100行,我将能够选择其中的5行并创建一个新的矩阵.无论是否替换,我都希望选择这样做.

Ben*_*ker 36

使用sample与行replace=TRUEreplace=FALSE.

如果X是你的原始矩阵那么

X[sample(nrow(X),size=5,replace=TRUE),]
Run Code Online (Sandbox Code Playgroud)

要么

X[sample(nrow(X),size=5,replace=FALSE),]
Run Code Online (Sandbox Code Playgroud)

应该管用.(:如果您先选择样品可能更具可读性s <- sample(...),然后子集:newmat <- X[s,])


And*_*rie 9

使用sample功能:

x <- matrix(1:1000, nrow=100)
Run Code Online (Sandbox Code Playgroud)

随着更换:

x[sample(1:100, 5, replace=TRUE), ]
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]   19  119  219  319  419  519  619  719  819   919
[2,]   51  151  251  351  451  551  651  751  851   951
[3,]   42  142  242  342  442  542  642  742  842   942
[4,]   48  148  248  348  448  548  648  748  848   948
[5,]   73  173  273  373  473  573  673  773  873   973
Run Code Online (Sandbox Code Playgroud)

无法更换:

x[sample(1:100, 5, replace=FALSE), ]
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]   64  164  264  364  464  564  664  764  864   964
[2,]   67  167  267  367  467  567  667  767  867   967
[3,]   20  120  220  320  420  520  620  720  820   920
[4,]   17  117  217  317  417  517  617  717  817   917
[5,]    6  106  206  306  406  506  606  706  806   906
Run Code Online (Sandbox Code Playgroud)