「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が列Bにある行だけでなく、NAを持つすべての行を削除します。
また、2つの列のNA値についてこれを行う方法を知りたいです。
すべてのアドバイスに感謝します!
最も簡単な解決策は、is.na()
を使用することです。
df[!is.na(df$B), ]
あなたに与えます:
A B C
1 NA 2 NA
2 1 2 3
4 1 2 3
tidyverse
!を使用する場合、エレガントなソリューションがあります!
これには、drop_na
メソッドを提供するライブラリtidyr
が含まれており、非常に直感的に読み取ることができます。
だからあなたはただ:
library(tidyverse)
dat %>% drop_na("B")
これを試して:
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