我试图过滤掉R中的整行,但前提是特定集合的频率加起来不超过5。

我的数据看起来像这样。这是我目前称为“字”的数据框:

HEADWORD VARIANT FREQUENCY
 SWORD    sword      2
 SWORD    swerd      1
 SWORD    sworde     1
 KNIGHT   knight     6
 KNIGHT   kniht      2
 KNIGHT   knyt       1


我只希望特定单词内的频率加起来大于5的行。因此,在这里,我想保留KNIGHT的所有实例,但我想完全摆脱所有SWORD行。

我尝试在dplyr上执行此操作,但没有成功。这是我尝试的代码:

Words1 %>% group_by(HW) %>%  filter(Fr > 5)


我对其他方法一无所知,非常感谢您的帮助!

最佳答案

我们需要获取'FREQUENCY'的sum并按'HEADWORD'分组后检查filter中它是否大于5。

Words1 %>%
     group_by(HEADWORD) %>%
     filter(sum(FREQUENCY) >5)
#   HEADWORD VARIANT FREQUENCY
#     <chr>   <chr>     <int>
#1   KNIGHT  knight         6
#2   KNIGHT   kniht         2
#3   KNIGHT    knyt         1

09-07 21:57