【问题标题】:how do i remove rows with value frequencies more than x in R [duplicate]我如何删除R中值频率超过x的行[重复]
【发布时间】:2021-02-22 18:24:53
【问题描述】:

假设我有一个数据集:

x y
1 a
1 a
1 a
1 a
2 a
2 a
2 b 
3 c
3 e

如何删除 x 频率重复超过 3 次的行(例如出现 4 次的“1”)?

【问题讨论】:

    标签: r row apply frequency


    【解决方案1】:

    基础 R

    dat[ave(dat$x, dat$x, FUN=length) < 4,]
    #   x y
    # 5 2 a
    # 6 2 a
    # 7 2 b
    # 8 3 c
    # 9 3 e
    

    dplyr

    library(dplyr)
    dat %>%
      group_by(x) %>%
      filter(n() < 4) %>%
      ungroup()
    # # A tibble: 5 x 2
    #       x y    
    #   <int> <chr>
    # 1     2 a    
    # 2     2 a    
    # 3     2 b    
    # 4     3 c    
    # 5     3 e    
    

    数据表

    library(data.table)
    as.data.table(dat)[, .SD[.N < 4,], by = .(x)][]
    #        x      y
    #    <int> <char>
    # 1:     2      a
    # 2:     2      a
    # 3:     2      b
    # 4:     3      c
    # 5:     3      e
    

    【讨论】:

    • 抱歉,没看清楚
    猜你喜欢
    • 1970-01-01
    • 2020-07-28
    • 2020-08-12
    • 2021-05-22
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 2019-01-15
    相关资源
    最近更新 更多