【发布时间】:2021-06-03 03:58:52
【问题描述】:
我想使用每个组中不相等的样本大小从数据框中抽取行。
假设我们有一个按“组”分组的简单数据框:
library(dplyr)
set.seed(123)
df <- data.frame(group = rep(c("A", "B"), each = 10),
value = rnorm(10))
df
#> group value
#> 1 A -0.56047565
#> 2 A -0.23017749
#> .....
#> 10 A -0.44566197
#> 11 B -0.56047565
#> 12 B -0.23017749
#> .....
#> 20 B -0.44566197
使用dplyr 包中的slice_sample 函数,您可以轻松地从该数据帧中分割相等 大小的组:
df %>% group_by(group) %>% slice_sample(n = 2) %>% ungroup()
#> # A tibble: 4 x 2
#> group value
#> <fct> <dbl>
#> 1 A -0.687
#> 2 A -0.446
#> 3 B -0.687
#> 4 B 1.56
问题
您如何从每个组(大小不相等的切片组)中采样不同个值?例如,从 A 组中采样 4 行,从 B 组中采样 5 行?
【问题讨论】: