当一个观察值可以有多于一行时,如何在 R 中进行随机抽样并进行替换(即引导程序)?

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

我的数据如下所示(这是一个简化的示例):

变量1 IDvar
123 1
456 2
789 2
987 3

我想对四个观察值进行随机抽样,并根据

IDvar
进行替换。只需从唯一的
IDvar
值集中采样四个值,这将是一项简单的任务,即:

sample(df$IDvar, replace = TRUE)

但是样本中仅包含

IDvar
值 2 的一半。另一方面,如果仅对唯一 ID 进行采样,则可能会超出给定的样本大小,即:

sample(unique(df$IDvar), replace = T)
[1] 3 1 1 2

...这是不允许的,如果给定的样本量是四个,但现在我们有五个观察值,因为

IDvar = 2
对应两个观察值。

那么,有没有办法执行这种类型的放回随机抽样?

我想到的一件事是对 ID 进行逐一采样,并在每次采样后检查我们是否仍有该 ID 的“样本量”,但这是否有效?

r random sampling statistics-bootstrap
© www.soinside.com 2019 - 2024. All rights reserved.