【问题标题】:display ids of all values of a particular column is NA r特定列的所有值的显示 ID 为 NA r
【发布时间】:2025-11-27 14:25:01
【问题描述】:
id <- c(1,1,1,2,3,3,3,4,4,5,5)
val1 <-c(NA,1,2,NA,NA,3,4,4,NA,NA)
dt <- data.frame(id,val1)

dt 是我的数据框,我想输出所有 val1 为 NA 的 id。

id val1
1  NA
1  1
1  2
2  NA
3  NA
3  NA
3  3
4  4
4  4
5  NA
5  NA

输出应该是

id
2
5  

【问题讨论】:

    标签: r group-by dplyr lapply


    【解决方案1】:

    你可以用dplry包做

    library(dplyr)
    
    dt %>%
      group_by(id) %>%
      filter(all(is.na(val1))) %>%
      pull(id) %>%
      unique()
    

    输出

    [1] 2 5
    

    【讨论】:

    • 我注意到您建议对试图解决问题的问题进行编辑。您应该在回答中包含该信息。
    【解决方案2】:

    在按'id'分组后,filter'val1'中所有NA的行和select'id'列中的行

    library(dplyr)
    dt %>%
         group_by(id) %>%
         filter(all(is.na(val1))) %>%
         select(id) %>%
         distinct
    # A tibble: 2 x 1
    # Groups:   id [2]
    #     id
    #  <dbl>
    #1     2
    #2     5
    

    【讨论】:

      最近更新 更多