如何有效地从所有组合中随机选择多个组合?

时间:2014-11-25 11:27:01

标签: r combinations

我知道函数combn可以生成所有可能的组合。但是,如果成员总数很大,这实际上非常耗时且耗费内存。

我的目标是从所有可能的组合中随机选择组合。例如,我想要3000个成员池中的5000个不同的三元组成员。我想我不需要生成所有可能的组合并从中选择5000。但似乎R没有现成的功能来做到这一点。那么如何处理这个问题呢?

1 个答案:

答案 0 :(得分:2)

这不完全是你所需要的,但也许它可以让你开始:

 library(data.table) #to make the table easier
 members=1:3000;
 X=data.table(RUN=1:5000)
 X<-X[,as.list(sample(members, 3)),by=RUN]

这将创建3个从成员向量中随机选择的新列。将它们视为每个成员的ID。

我会检查一下使用的唯一数量:

 X[duplicated(X, by=c('V1','V2','V3'))]

这对你有帮助吗?