通过簇替换重新采样

标签 r resampling statistics-bootstrap

我想绘制集群(由变量id定义)并从数据集中进行替换,与之前回答的问题相比,我希望选择K次的集群以使每个观察重复K次次。也就是说,我正在进行集群引导。

例如,以下示例 id=1 两次,但在新数据集 s 中仅对 id=1 重复观察一次。我希望 id=1 中的所有观察结果都出现两次。

f <- data.frame(id=c(1, 1, 2, 2, 2, 3, 3), X=rnorm(7))
set.seed(451)
new.ids <- sample(unique(f$id), replace=TRUE)
s <- f[f$id %in% new.ids, ]

最佳答案

一种选择是对每个 new.id 进行lapply 并将其保存在列表中。然后你可以将它们堆叠在一起:

library(data.table)
rbindlist(lapply(new.ids, function(x) f[f$id %in% x,]))
#  id           X
#1:  1  1.20118333
#2:  1 -0.01280538
#3:  1  1.20118333
#4:  1 -0.01280538
#5:  3 -0.07302158
#6:  3 -1.26409125

关于通过簇替换重新采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43878667/

相关文章:

r - 如何在 R 回归公式中使用变量?

python - Scipy 插值如何将 3x3 矩阵调整大小/重新采样为 5x5?

r - 引导生物等效性结果 R

python - 在 Pandas 中的 groupby 对象上引导

r - 合并具有相等和不相等数据的行

r - 计算每行的每周返回 - 应用

python - 重新采样和填充 Pandas 中缺失的数据

r - R 中的 Monte Carlo 模拟、Bootstrap 和回归

R bootstrap 按组加权平均值与数据表

r - 如何抑制(不打印)行号?