我想从1:1000的群体中生成10个随机数,生成此数字的代码重复10次。我希望采样无需替换,以便10组10个随机数之间的交集为空。
首先,如果我在r中使用了sample函数并将replace设置为false,那么它并没有多大帮助 当我在网上搜索时,我发现了一个叫做urn的函数,但是我无法在r中下载软件包。所以简而言之,我想做的就像下面的代码一样:
http://rss.acs.unt.edu/Rdoc/library/urn/html/urn.html 但手动而不是使用urn包
我尝试了以下代码,但生成的样本并不是唯一的,我从“数据”中随机选择行
for(j in 1:10) {
x=unique(data[,2])
tr=sample(length(x),0.9*length(x),replace=FALSE)
}
答案 0 :(得分:3)
考虑到@ ElKamina的评论,您可以使用sample
生成100个数字并将它们分配到10 x 10矩阵中:
matrix(sample(1:1000, 100, FALSE), ncol=10)
答案 1 :(得分:0)
我喜欢样本100的值并将它们放在10 x 10矩阵中最好,但另一种选择是从完整列表中对第1个10进行采样,然后使用setdiff
来计算不包含10的集合已经选择,从该组中选择另外10个,再次使用setdiff
等等。
如果您提前知道每个样本中有多少样本或多少样本,这种方式可能会更好,但在这些情况下,您可以使用sample
随机置换整个1000列表,然后只需从置换列表中挑选出小组。