我正在使用R并使用表达式sort(sample(1:60,6,replace=FALSE))
生成1到60之间的6个数字,而无需替换...
我想使用FOR语句创建一个循环,允许使用上面的逻辑生成n个不同的样本。
有关如何构建此循环的任何建议吗?
答案 0 :(得分:2)
使用replicate
:
replicate(sort(sample(1:60, 6, replace = FALSE)), n = 1000)
结果是一个大小为6x1000的矩阵,因此每列是一个样本。
我想你想做随机抽取,这样可以获得相同的样本。如果你想要独特的样品,我试了一下:
lottery <- function(n) {
S <- replicate(sort.int(sample(1:60, 6, repl = F)), n = n)
while(d <- anyDuplicated(S, MARGIN = 2)) {
S <- cbind(S[, -d], sort.int(sample(1:60, 6, repl = F)))
}
S
}
答案 1 :(得分:1)
您可以使用rerun
函数返回包含所需结果的列表
library(purrr)
rerun(.n = 1000, sort(sample(1:60, 6, replace = FALSE))) %>%
unique()