我的数据名为“dat”:
A B C
NA 2 NA
1 2 3
1 NA 3
1 2 3
如果B列中有NA,我希望删除所有行:
A B C
NA 2 NA
1 2 3
1 2 3
na.omit(dat)删除所有带NA的行,而不仅仅是NA在B列中的行。
此外,我想知道如何在两列中找到NA值。
我感谢所有建议!
答案 0 :(得分:7)
最简单的解决方案是使用is.na()
:
df[!is.na(df$B), ]
给你:
A B C
1 NA 2 NA
2 1 2 3
4 1 2 3
答案 1 :(得分:1)
试试这个:
df<-data.frame(A=c(NA,1,1,1),B=c(2,2,NA,2),C=c(NA,3,3,3))
df<-df[-which(is.na(df$B)),]
df
A B C
1 NA 2 NA
2 1 2 3
4 1 2 3
答案 2 :(得分:0)
如果您使用tidyverse
,这是一个绝妙的解决方案!
它包含库tidyr
,该库提供了非常直观的方法drop_na
。
所以您只需:
library(tidyverse)
dat %>% drop_na("B")
答案 3 :(得分:0)
这应该有效
dat = dat[dat['B'].notnull()]