我如何创建一个矩阵,行上有随机数,不替换,但用col可以替换,R语言

我如何创建一个矩阵,行上有随机数,不替换,但用col可以替换,R语言,r,R,我如何创建一个矩阵,行上有随机数而不替换。 像这样 5 29 24 20 31 33 2 18 35 4 11 21 30 40 22 14 2 28 33 14 4 18 5 10 10 33 15 2 28 18 7 22 9 25 31 20 12 29 31 22 37 26 7 31 34 28 19 23 7 34 11 6 31 28 我的代码: matrix(sample(1:42, 60, rep

我如何创建一个矩阵,行上有随机数而不替换。 像这样

 5 29 24 20 31 33    
 2 18 35  4 11 21    
30 40 22 14  2 28  
33 14  4 18  5 10   
10 33 15  2 28 18    
 7 22  9 25 31 20    
12 29 31 22 37 26   
 7 31 34 28 19 23   
 7 34 11  6 31 28 
我的代码:

matrix(sample(1:42, 60, replace = FALSE), ncol = 6)
但我收到以下错误消息:

sample.intlengthx、size、replace、prob中出错:无法获取 当“replace=FALSE”时,样本大于总体


但这是错误的,因为只有1~42,它无法创建60矩阵。

您不能用一个示例函数生成所有60个数字,因为您希望允许替换不同行中的数字。因此,您必须每行做一个样本@Jav在对问题的评论中提供了非常简洁的代码来实现这一点:

t(sapply(1:10, function(x) sample(1:42, 6, replace = FALSE)))

如果您想在每一行中使用不同的样本,那么replicate可以帮助您,但是replicate在R中几乎所有其他内容都是按列方式自然工作的,因此您必须转置结果:

t(replicate(10, sample(1:42, 6)))
replace=FALSE是默认值,所以我没有包括它 转置后,10表示行数,6表示列数 是每排吗?tsapply1:10,functionx sample1:42,6,replace=FALSE可以使用复制:matrixreplicate2,sample1:42,replace=FALSE,ncol=6,nrow=10