【问题标题】:Remove NA rows based on mulitple columns's name in R [duplicate]基于R中的多列名称删除NA行[重复]
【发布时间】:2020-06-24 11:04:53
【问题描述】:

给定一个小数据集如下:

A   B   C
1   2   NA
NA  2   3
1   NA  3
1   2   3

如何根据条件删除行:BC 列有 NAs?

预期的结果是这样的:

A   B   C
NA  2   3
1   2   3

【问题讨论】:

    标签: r


    【解决方案1】:

    Base R 中的另一个选项是

    df[complete.cases(df[c("B","C")]),]
    
       A B C
    2 NA 2 3
    4  1 2 3
    

    【讨论】:

    • na.omit(df, cols = c("B", "C")) 似乎也有效。
    【解决方案2】:

    base R:

    df[!is.na(df$B) & !is.na(df$C),]
    

    使用dplyr

    df %>%
      filter(!is.na(B), !is.na(C))
    

    返回

    # A tibble: 2 x 3
          A     B     C
      <dbl> <dbl> <dbl>
    1    NA     2     3
    2     1     2     3
    

    df %>%
      drop_na(B, C)
    

    【讨论】:

      猜你喜欢
      • 2016-12-02
      • 2019-08-12
      • 2021-01-31
      • 2018-05-17
      • 2023-03-05
      • 1970-01-01
      • 2017-02-20
      • 2013-06-13
      • 1970-01-01
      相关资源
      最近更新 更多