从有序数据中随机采样

问题描述 投票:0回答:1

在模拟中,我们需要有序数据,它是来自大小为 n 的完整数据集的大小为 m 的随机样本(有或没有替换)。不幸的是,对采样数据进行排序最终成为我们模拟中的性能瓶颈。

因此,我们想知道是否可以仅对完整数据集进行一次排序,然后通过从有序数据中采样直接获得有序样本(无需对

sample()
返回的索引进行排序)。

有人建议如何在 R 中执行此操作(我们不一定需要 R 代码,但一般方法也足够了)?

r algorithm random sample
1个回答
0
投票

我认为最明显的方法是不对行进行采样,而是对一个简单的数字索引(即 1 到行数)进行采样,然后对 that 进行排序并提取相关记录:

bigorderedlist <- rnorm(1e6)

bigorderedlist[sample(1:length(bigorderedlist), 10) |> sort()]
© www.soinside.com 2019 - 2024. All rights reserved.