[英]sample multiple different sample sizes using crossing and sample_n to create single df
我正在尝试使用 sample_n 对数据帧进行采样。 我知道 sample_n 通常一次只接受一个 size= 参数,但是,我想从 2 到 df 中的最大行数进行采样。 不幸的是,我在下面编译的代码不能完成这项工作。 所需的输出将是一个带有 id= 列的数据帧或一个列表除以来自 cross() 的 id 列。
df <- data.frame(Date = 1:15,
grp = rep(1:3,each = 5),
frq = rep(c(3,2,4), each = 5))
data_sampled_by_stratum <- df %>%
group_by(Date) %>%
crossing(id = seq(500)) %>% # repeat dataframes
group_by(id) %>%
sample_n(size=c(2:15)) %>%
group_by(CLUSTER_ID,Date) %>% filter(n() > 2)
如果您有一个包含不同站点的列,则可以执行此操作。
data_sampled_by_stratum <- data_grouped_by_stratum %>%
group_by(siteid, Date) %>%
crossing(id = seq(500)) %>% # repeat dataframes
sample_n(rbinom(1,sum(siteid==i),(1-s)^2))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.