R-随机抽取有序样本
在R中,我目前有以下代码:R-随机抽取有序样本,r,random-sample,R,Random Sample,在R中,我目前有以下代码: sample(1:15,sample(1:15,1)) 这将以随机顺序绘制随机大小的值。但是,对于我的申请,订单必须保持不变 我不能简单地在每次绘制后对值进行排序,因为这样计算效率很低。对于我的应用程序,我希望从有序值的样本中提取,这将大大减少样本大小,从而减少计算时间 一些例子: > 7 9 13 14 > 1 5 6 > 3 4 8 10 11 14 15 > 2 > 2 4 6 8
sample(1:15,sample(1:15,1))
这将以随机顺序绘制随机大小的值。但是,对于我的申请,订单必须保持不变
我不能简单地在每次绘制后对值进行排序,因为这样计算效率很低。对于我的应用程序,我希望从有序值的样本中提取,这将大大减少样本大小,从而减少计算时间
一些例子:
> 7 9 13 14
> 1 5 6
> 3 4 8 10 11 14 15
> 2
> 2 4 6 8 9
编辑:绘图中的每个值也必须是唯一的。您可以通过单步查看列表并在每一步考虑采样时选择此值的概率有多大来解决此问题。这正是这个函数所做的
### 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
})]
}
####函数,该函数将选择N个值并保留顺序
mySample您是否在寻找排序
?随机排序的样本似乎很难创建,因为输出的元素数量很难标准化。例如,对于1:15,如果第一次抽签(随机过程)是15,会发生什么?该过程应该停止,因此很难指定n
。也许这会有所帮助:seq(1,15,sample(1:15,1))
seq(sample(1:15,1),15,sample(1:15,1))
谢谢LyzandemySample(1:15,sample(1:15,1))
谢谢