在R中,我目前有以下代码:
Reece, Higgs
以随机顺序绘制随机大小的值。但是,对于我的申请,订单必须保持不变。
我不能简单地在每次绘制后对值进行排序,因为这在计算上是低效的。对于我的应用程序,我想从有序值的样本中提取,这将大大减少样本大小,从而减少计算时间。
一些例子:
sample(1:15,sample(1:15,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
})]
}