Filter group of rows based on sum of values from different column

前端 未结 2 1727
有刺的猬
有刺的猬 2020-12-04 02:32

I\'m trying to filter out whole rows in R, but only if the frequencies for a particular set don\'t add up to more than 5.

The data I have looks a bit like this. It\'s

相关标签:
2条回答
  • 2020-12-04 03:13

    We need to get the sum of 'FREQUENCY' and check whether it is greater than 5 in the filter after grouping by 'HEADWORD'

    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
    
    0 讨论(0)
  • 2020-12-04 03:14

    You can use base R ave function

    df[ave(df$FREQUENCY, df$HEADWORD, FUN = sum) > 5, ]
    
    #   HEADWORD VARIANT FREQUENCY
    #4   KNIGHT  knight         6
    #5   KNIGHT   kniht         2
    #6   KNIGHT    knyt         1
    
    0 讨论(0)
提交回复
热议问题