在R中创建混洗数字

在R中创建混洗数字,r,random,sample,sampling,R,Random,Sample,Sampling,看到这个结果,我想知道如何在R中创建一组15个1到4的无序排列顺序 在上,您可以获得一组15个随机数字 范围:从1到4 例如,在我的跑步中,我得到: 第1组: 3,2,2,1,1,1,3,2,2,3,2,1,3,4,1 有没有一种方法可以在R中复制上述内容?如果我正确理解了你的问题,一开始我会想到一个类似以下的解决方案:非常基本,但它能完成它的工作 size <- 40 vec <- sample(1:4, size = size, replace = TRUE) while(len

看到这个结果,我想知道如何在
R
中创建一组15个1到4的无序排列顺序

在上,您可以获得一组15个随机数字 范围:从1到4

例如,在我的跑步中,我得到:

第1组: 3,2,2,1,1,1,3,2,2,3,2,1,3,4,1


有没有一种方法可以在
R
中复制上述内容?

如果我正确理解了你的问题,一开始我会想到一个类似以下的解决方案:非常基本,但它能完成它的工作

size <- 40
vec <- sample(1:4, size = size, replace = TRUE)
while(length(unique(vec)) < 4){
    vec <- sample(1:4, size = size, replace = TRUE)
}
vec 

size如果我正确理解了你的问题,一开始我会想到一个类似以下的解决方案:非常基本,但它能完成它的任务

size <- 40
vec <- sample(1:4, size = size, replace = TRUE)
while(length(unique(vec)) < 4){
    vec <- sample(1:4, size = size, replace = TRUE)
}
vec 

size我不明白您想要的结果到底是什么。你只想让数字1-4以随机顺序出现10次吗?那么
样本(rep(1:4,10))呢
?或者您只是想将
replicate
的结果转换成一个简单的向量:
as.vector(replicate(40,sample(1:4))
?@MrFlick,应该可以了,谢谢@MrFlick,
sample(rep(1:4,10))
是我要找的,但是如果我们没有
40
,而是
15
?这不是4的倍数,所以我不确定如果你只选择15个值,你怎么会有1-4的随机顺序。这将取决于您正试图建模的过程。我不会试图猜测该程序可能在做什么。这对我来说并不明显。如果你在这个问题中用语言描述你想要发生的事情,那将是最好的。我不明白你想要的结果到底是什么。你只想让数字1-4以随机顺序出现10次吗?那么
样本(rep(1:4,10))呢
?或者您只是想将
replicate
的结果转换成一个简单的向量:
as.vector(replicate(40,sample(1:4))
?@MrFlick,应该可以了,谢谢@MrFlick,
sample(rep(1:4,10))
是我要找的,但是如果我们没有
40
,而是
15
?这不是4的倍数,所以我不确定如果你只选择15个值,你怎么会有1-4的随机顺序。这将取决于您正试图建模的过程。我不会试图猜测该程序可能在做什么。这对我来说并不明显。如果您在这个问题中用文字描述您希望发生的事情,那将是最好的。是的,我尝试过在while循环中使用一个小的向量大小和一个“print”函数。当“vec”至少包含1到4之间的所有数字中的一个时,循环停止。举个例子,我将size=6,while循环用了三次迭代来生成一个你想要的向量。是的,我尝试过在while循环中使用一个小的向量大小和一个“print”函数。当“vec”至少包含1到4之间的所有数字中的一个时,循环停止。作为一个例子,我将size=6,while循环经过三次迭代,得到了一个您想要的向量。