基于频率的dplyr链滤波器

时间:2017-12-19 04:52:30

标签: r dplyr

table(mtcars$cyl)

 4  6  8 
11  7 14 

假设我想过滤低频项,在这种情况下小于10.是否有优雅的dplyr esque方法来做到这一点?

mtcars %>% group_by(cyl) %>% filter([???])

结果将是仅具有4和8 cyl的数据框,因为它们都出现10次或更多次。

1 个答案:

答案 0 :(得分:1)

cyl分组,计算行数,过滤,可选择删除freq列:

library(dplyr)
mtcars %>% 
  group_by(cyl) %>% 
  mutate(freq = n()) %>% 
  ungroup() %>% 
  filter(freq > 9) %>%
  select(-freq)