Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-随机抽取有序样本_R_Random Sample - Fatal编程技术网

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

在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 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))
谢谢Lyzande
mySample(1:15,sample(1:15,1))
谢谢