首页 > 解决方案 > 过滤满足 r 中每组条件的行

问题描述

我有一个大数据框,如果基于此数据框中的列的给定组的行数小于给定数字,我想删除所有行。这是一个例子:

x=1:6; y=c("A","B","B","B","C","C")
df<- data.frame(x,y)

如果我按变量 y 分组,我有三行属于组“B”。在这里,我想删除所有不满足此条件的行(<3 行)。预期输出:

df
  x y
1 2 B
2 3 B
3 4 B

是否有捷径可寻?

标签: rdataframedplyrtibble

解决方案


我们可以使用dplyr::filter()并计算每组中的行数dplyr::n()

library(dplyr)

df %>% 
  group_by(y) %>% 
  filter(n()>2)

推荐阅读