【发布时间】:2021-02-03 21:53:32
【问题描述】:
我正在使用下面的代码对人群进行分层随机抽样,并根据性别和地区确定了先前的目标。可以看出,相同的代码重复了 3 次(每次使用 rbind 时)。有没有办法写一个循环函数,可以重复这个过程,这样我就不用写好几次了?
library(tidyverse)
population<- data.frame(region=rep(c("North", "South", "North", "South"),50000),
sex=rep(c("Male", "Female", "Female", "Male"),50000))
targets<- data.frame(region=c("North", "South", "North", "South"),
sex=c("Male", "Female", "Female", "Male"),
total=c(20,25,20,30))
n=0
n=n+1
sample<- population %>% filter(region==targets$region[[1]],
sex==targets$sex[[1]]) %>%
slice_sample(n=targets$total[[1]])
n=n+1
sample<- sample %>% rbind(population %>% filter(region==targets$region[[n]],
sex==targets$sex[[n]]) %>%
slice_sample(n=targets$total[[n]]))
n=n+1
sample<- sample %>% rbind(population %>% filter(region==targets$region[[n]],
sex==targets$sex[[n]]) %>%
slice_sample(n=targets$total[[n]]))
n=n+1
sample<- sample %>% rbind(population %>% filter(region==targets$region[[n]],
sex==targets$sex[[n]]) %>%
slice_sample(n=targets$total[[n]]))
【问题讨论】: