我有以下数据框:
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) 的列
谢谢
你可以尝试这样的事情。
data[, colSums(is.na(data)) < 2]
ID Col1 Col3
1 Per1 1 3
2 Per2 2 NA
3 Per3 NA 5
与
select
+ where
:
library(dplyr)
data |>
select(where(\(x) sum(is.na(x)) < 2))