Ada*_*ner 2 random r generator
这是我正在使用的代码.我想随机抽取数字,我想继续这样做,直到所有数字1:18都被绘制出来.我不想两次绘制相同的数字.
RandomArray <- sample(1:18, 6, replace=F)
RandomArray2 <- sample(1:18,6, replace = F)
RandomArray3 <- sample(1:18,6, replace = F)
RandomArray2 <- ifelse(RandomArray==RandomArray2,
sample(1:18,6,replace=F),RandomArray2)
RandomArray3 <- ifelse(RandomArray2==RandomArray3,
sample(1:18,6,replace=F),RandomArray3)
Run Code Online (Sandbox Code Playgroud)
理想的输出是
RandomArray [1 2 3 4 5 6] RandomArray2 [7 8 9 10 11 12] RandomArray3 [13 14 15 16 17 18]
Run Code Online (Sandbox Code Playgroud)
我也尝试过
x <- 1:18
test2 <- sapply(x, function(x)
if (x == RandomArray) x-RandomArray else x)
Run Code Online (Sandbox Code Playgroud)
但这也不对,因为我只是想摆脱我已经绘制过的数字.
谢谢您的帮助.
这有效:
r_vecs = split(sample(18), 1:3)
Run Code Online (Sandbox Code Playgroud)
这个怎么运作. sample(18)
是1:18的排列; 并且1:3被"回收"到相同的长度.@akrun指出,使用rep(1:3, 6)
代替回收的1:3可以更快.
评论.最好将它们保存在列表中,而不是乱用大量名为的对象RandomArray*
.矩阵将是另一个好的选择:
r_vecs = matrix(sample(18), ncol=3)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
41 次 |
最近记录: |