大きなデータセットがあり、サンプルしたい複数のグループがあります。各グループには一定の数の正のケースがあり、値は1であり、負のケースはさらに多く、値はゼロです。R - ラージデータセットを使用した層別サンプリング
各グループについて、すべての肯定的なケースを選択し、そのグループの肯定的なケースの量の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)
あなたの質問に[最小再現可能な例](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を含めると、回答が得られる可能性が高くなります。 – jsb