我希望从一个数据框中使用不同的样本大小来对行进行抽样。这个数据框按 'group' 分组:
假设我们有一个简单的数据框:
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行?