管道中的Dplyr缩减示例

时间:2018-04-13 18:19:06

标签: r statistics dplyr downsampling

我有这样的反复:

tibble(a = c(1,2,3,4,5), b = c(1,1,1,2,2))

我想通过" b"随机下采样数据。列,像这样:

tibble(a = c(1,3,4,5), b = c(1,1,2,2))

如何在Dplyr管道中完全执行此操作而不更改tibble的数据类型?

1 个答案:

答案 0 :(得分:3)

这将获得最小的组大小(按b分组),并对每组中的许多元素进行采样。不清楚这是不是你想要的。

如果您的tibble被称为df

df %>% 
  group_by(b) %>% 
  add_count %>% 
  slice(sample(row_number(), min(.$n))) %>% 
  select(-n)