R - 绘制随机有序样本

时间:2015-12-11 10:54:57

标签: r random-sample

在R中,我目前有以下代码:

Reece, Higgs

以随机顺序绘制随机大小的值。但是,对于我的申请,订单必须保持不变。

我不能简单地在每次绘制后对值进行排序,因为这在计算上是低效的。对于我的应用程序,我想从有序值的样本中提取,这将大大减少样本大小,从而减少计算时间。

一些例子:

    sample(1:15,sample(1:15,1))

编辑:抽奖中的每个值也必须是唯一的。

1 个答案:

答案 0 :(得分:1)

您可以通过单击列表来解决此问题,并在每个步骤中考虑采样时选择此值的概率有多大。这正是这个函数的作用

### Function that will select N values and preserve the order
mySample <- function(values,N){

        size <- length(values)

        values[sapply(1:size, function(i){
                    select <- as.logical(rbinom(1,1,N/(size+1-i)))
                    if(select) N <<- N - 1
                    select
        })]

}