【问题标题】:How to Bootstrap Resample Count Data in R如何在 R 中引导重采样计数数据
【发布时间】:2015-12-08 19:03:09
【问题描述】:

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

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

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

通过阅读各种文档,重新采样每行或每列代表单个观察的数据似乎很容易。但是当每一行代表多个观察值加在一起时(如在计数表中),我该怎么做呢?

【问题讨论】:

  • sample 可以允许有放回抽样,并且有一个prob 参数来生成样本比例。所以也许是sample(dat[,1], size=100, replace=TRUE, prob=prop.table(dat[,2]))

标签: r resampling


【解决方案1】:

您可以使用加权采样(如 cmets 中也提到的 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),]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2012-12-15
    • 2011-09-27
    相关资源
    最近更新 更多