【发布时间】:2020-04-30 07:34:48
【问题描述】:
dplyr 包中的 sample_n() 函数允许随机保留特定数量的行。结合 group_by(),您可以例如每组保留 2 个观察值:
mtcars %>%
select(vs, drat) %>%
group_by(vs) %>%
sample_n(2)
# A tibble: 4 x 2
# Groups: vs [2]
vs drat
<dbl> <dbl>
1 0 3.07
2 0 3.9
3 1 4.22
4 1 3.08
问题:有没有一种简单的方法可以为每组选择不同数量的观察值?例如,如果我想为第一组保留 2 个观察结果,为第二组保留 3 个观察结果。如果我给函数sample_n()一个向量,它只使用第一个值(结果同上)。
mtcars %>%
select(vs, drat) %>%
group_by(vs) %>%
sample_n(c(2,3))
提前致谢。
【问题讨论】: