如何使用rep_slice_sample()在不同观测数组内按原容量重复抽样?
问题解决:分组重抽样样本量不符预期
问题出在你使用了prop=1参数,而原数据集存在缺失值,infer包的rep_slice_sample函数中,prop参数是基于去除缺失值后的分组样本量来计算抽样数量的,并非原分组的总样本量。
penguins数据集中共有11条含缺失值的记录,比如Adelie组有4条缺失行,当你指定prop=1时,函数会先剔除这些缺失行,再按100%比例抽样,最终得到的样本量就是原组总样本量减去缺失值数量,这和你预期的原组样本量不符。
修正代码
把prop=1替换为n = n(),n()会返回当前分组的总样本量(包含缺失值的行),强制每个重抽样样本的大小和原组完全一致:
set.seed(100) slices <- penguins %>% group_by(species) %>% rep_slice_sample(n = n(), replace = TRUE, reps = 10)
验证结果
运行以下代码检查样本量:
slices %>% group_by(species, replicate) %>% count()
此时每个物种的每个重复样本都会和原组样本量一致:Adelie为152条,Chinstrap为68条,Gentoo为124条。
内容的提问来源于stack exchange,提问作者AdrieSC
相关产品推荐
相关产品推荐

