0

我想从人口 1:1000 中生成 10 个随机数,并且生成此数字的代码重复 10 次。我希望采样没有替换,这样 10 组 10 个随机数之间的交集为空。

首先,如果我在 r 中使用示例函数并将替换设置为 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)
}
4

2 回答 2

3

考虑到@ElKamina 的评论,您可以使用生成 100 个数字sample并将它们分配到 10 x 10 矩阵中:

matrix(sample(1:1000, 100, FALSE), ncol=10)
于 2013-04-08T16:02:48.163 回答
0

我喜欢样本 100 个值,最好将它们放在 10 x 10 矩阵中,但另一种选择是从完整列表中对第一个 10 进行采样,然后用于setdiff计算没有已经选择的 10 个的集合,从中选择另一个 10分组,setdiff再次使用等

如果您不提前知道有多少样本或每个样本中有多少,这种方法可能会更好,但在这些情况下,您可以使用sample随机排列 1000 的整个列表,然后从排列列表中挑选组。

于 2013-04-08T18:11:58.290 回答