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

问题描述 投票:0回答:2

我有以下数据框:

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 列,同时保留仅包含 1 个 NA (1&3) 的列

谢谢

r dataframe subset na
2个回答
1
投票

你可以尝试这样的事情。

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

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

0
投票

select
+
where
:

library(dplyr)
data |>
  select(where(\(x) sum(is.na(x)) < 2))
© www.soinside.com 2019 - 2024. All rights reserved.