在模拟中,我们需要有序数据,它是来自大小为 n 的完整数据集的大小为 m 的随机样本(有或没有替换)。不幸的是,对采样数据进行排序最终成为我们模拟中的性能瓶颈。
因此,我们想知道是否可以仅对完整数据集进行一次排序,然后通过从有序数据中采样直接获得有序样本(无需对
sample()
返回的索引进行排序)。
有人建议如何在 R 中执行此操作(我们不一定需要 R 代码,但一般方法也足够了)?
我认为最明显的方法是不对行进行采样,而是对一个简单的数字索引(即 1 到行数)进行采样,然后对 that 进行排序并提取相关记录:
bigorderedlist <- rnorm(1e6)
bigorderedlist[sample(1:length(bigorderedlist), 10) |> sort()]