我如何创建一个矩阵,行上有随机数,不替换,但用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