r语言 - 如何在样本中从不同的组中选择不同的样本比例

  • 本文关键字:样本 选择 r语言 r tidyverse
  • 更新时间 :
  • 英文 :


如何在标题中选择不同组的样本比例?

下面创建了一个示例标题。它有100个0和800个1。我想随机选择80%的0和20%的1

sample_frac或sample_n不允许对每个组进行不同的采样链接到它们的文档

library(tidyverse)
a <- c(rep(0, 100),
rep(1, 1000))
tbl <- tibble(a)
# select 80% of 0s and 20% of 1s
b <- tbl %>%
group_by(a) %>%
sample_frac(size = 0.2)

听起来你在寻找分层抽样。dplyr提供较新的slice_sample(或旧版本中的sample_n/sample_frac)。只需在如下所示的向量中提供每个关卡的权重,然后将其输入weight_by参数。

# provide proportions 
weights <- ifelse(a == 0, 0.8, 0.2)
# feeds weights into sample function
b <- tbl %>%
slice_sample(prop = 0.2, weight_by = weights)

最新更新