【发布时间】:2017-11-10 21:27:57
【问题描述】:
我有一个大型数据集,并且我有多个要采样的组。每个组都有一定数量的阳性病例,值为 1,还有更多的阴性病例,值为 0。
对于每个组,我想选择所有阳性病例,然后随机选择等于该组阳性病例数量 4 倍的阴性病例。
我还需要在大量数据上快速运行的东西。
半更新:
stratified_sample = data %>%
group_by(group) %>%
mutate(n_pos = sum(response == 1),
n_neg = 4 * n_pos) %>%
group_by(group,response) %>%
mutate(rec_num = n(),
random_val = runif(n()),
random_order = rank(random_val)) %>%
filter(response == 1 | random_order <= n_neg)
【问题讨论】:
-
在您的问题中包含minimal reproducible example 会增加您获得答案的机会。