我已经花了一天多的时间去完成看起来非常简单的事情。我需要创建300个“随机”序列,其中数字1、2、3和4都恰好出现12次,但是同一个数字不能在连续的位置上使用两次。
我最好的尝试(我猜)是:
让R从48个项目中无重复地随机抽取样本,测试其中是否存在连续值,然后仅使用不包含连续值的序列。 问题:几乎没有满足此标准的随机序列,因此这需要很长时间。
让R创建不包含连续值的序列(见代码)。
pop<-rep(1:4,12)
y=c()
while(length(y)!=48)
{
y= c(y,sample(pop,48-length(y),replace=F))
y=y[!c(FALSE, diff(y) == 0)]
}
问题:这会创建包含各种数量值的序列。我尝试仅使用恰好包含12个值的序列,但这只是让我回到了问题1:需要很长时间才能完成。一定有某种简单的方法可以做到这一点,对吧?非常感谢您的帮助!