删除 R 中数据框中包含多个 NA 的列 [duplicate]

Delete columns that contain more than one NA in a data frame in R [duplicate]

提问人:george1994 提问时间:10/18/2023 更新时间:10/18/2023 访问量:46

问:

我有以下数据框:

data <- data.frame(
  ID = c("Per1", "Per2", "Per3"),
  Col1 = c(1, 2, NA),
  Col2 = c(2, NA, NA),
  Col3 = c(3, NA, 5),
  Col4 = c(4, NA, NA)
)

    ID Col1 Col2 Col3 Col4
1 Per1    1    2    3    4
2 Per2    2   NA   NA   NA
3 Per3   NA   NA    5   NA

现在,我只想删除包含多个 NA 的列,即第 2 列和第 4 列,同时保留仅包含一个 NA (1&3) 的列

谢谢

R DataFrame 子集 NA

评论

1赞 Ben 10/18/2023
也许试试:?data[, colSums(is.na(data)) <= 1]
0赞 Friede 10/18/2023
就像 Ben 建议的那样!

答:

2赞 Jamie 10/18/2023 #1

您可以在 base R 中尝试类似的东西。

使用下面的条件,您可以返回一个向量 T/F,以仅选择具有少于 2 个 NA 的列。

data[, colSums(is.na(data)) < 2]

    ID Col1 Col3
1 Per1    1    3
2 Per2    2   NA
3 Per3   NA    5