R - 如果最后一个值为 NA,则删除列

R - Delete column if last value is NA

我想删除 R 数据框中的最后一个值为 NA 的列。

示例数据框如下

A   B   C   D
11  10  19  20
22  20  29  40
33  30  39  60
44  NA  NA  80

我想获得以下输出(B 列和 C 列被删除,因为它们在最后一行中有 NA 值)

A   D
11  20
22  40
33  60
44  80

已尝试但无法找到任何有效的解决方案。感谢您的帮助。

# Data
df <- read.table(text="A   B   C   D
                       11  10  19  20
                       22  20  29  40
                       33  30  39  60
                       44  NA  NA  80", header=TRUE)

df[-which(is.na(df[nrow(df), ]))]

   A  D
1 11 20
2 22 40
3 33 60
4 44 80

# Suggestion from @alistaire
df[, !is.na(df[nrow(df), ])]

na.omit() 函数删除任何缺少数据的行。 pp <- data.frame(po=c(10,20,30,40,NA), pi=c(45,65,75,55,85)) pp na.omit(pp) -- 删除整行

na.delete(pp["po"]) --- 删除整列 "NA".