如何在R中引导重采样计数数据

时间:2015-12-08 19:03:09

标签: r resampling

我有一个计数向量,我想用R中的替换重新取样:

X350277  128
X193233  301
X514940 3715
X535375  760
X953855   50
X357046  236
X196664  460
X589071  898
X583656  670
X583117 1614

(注意第二列是计数,第一列是计数所代表的对象)

通过阅读各种文档,似乎很容易重新采样数据,其中每行或每列代表一次观察。但是,当每一行代表多个观察结果汇总在一起时,我该如何做到这一点(如计数表中所示)?

1 个答案:

答案 0 :(得分:3)

您可以使用加权抽样(如评论中也提到的user20650):

sample_weights <- dat$count/sum(dat$count)
mysample <- dat[sample(1:nrow(dat),1000,replace=T,prob=sample_weights),]

效率较低的方法 - 根据您的目的可能会有其用途 - 是将您的数据再次变为“长”:

dat_large <- dat[rep(1:nrow(dat),dat$count),]

#then sampling is easy
mysample <- dat_large[sample(1:nrow(dat_large),1000,replace=T),]