我的数据如下所示(这是一个简化的示例):
变量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 的“样本量”,但这是否有效?