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".
我想删除 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".