过滤满足r中每组条件的行

Kai*_*zen 3 r dataframe dplyr tibble

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

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

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

df
  x y
1 2 B
2 3 B
3 4 B
Run Code Online (Sandbox Code Playgroud)

是否有捷径可寻?

M--*_*M-- 7

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

library(dplyr)

df %>% 
  group_by(y) %>% 
  filter(n()>2)
Run Code Online (Sandbox Code Playgroud)