tl;dr:逐行,你会想要sum(!complete.cases(DF))
,或者,等价地,sum(apply(DF, 1, anyNA))
有多种不同的方法来查看数量、比例或位置NA
数据框中的值:
其中大多数以逻辑数据帧开始TRUE
对于每一个NA
, and FALSE
其他地方。对于基础数据集airquality
is.na(airquality)
有 44 个NA
该数据集中的值
sum(is.na(airquality))
# [1] 44
你可以看看总数NA
每行或每列的值:
head(rowSums(is.na(airquality)))
# [1] 0 0 0 0 2 1
colSums(is.na(airquality))
# Ozone Solar.R Wind Temp Month Day
37 7 0 0 0 0
您可以使用anyNA()
代替is.na()
还有:
# by row
head(apply(airquality, 1, anyNA))
# [1] FALSE FALSE FALSE FALSE TRUE TRUE
sum(apply(airquality, 1, anyNA))
# [1] 42
# by column
head(apply(airquality, 2, anyNA))
# Ozone Solar.R Wind Temp Month Day
# TRUE TRUE FALSE FALSE FALSE FALSE
sum(apply(airquality, 2, anyNA))
# [1] 2
complete.cases()
可以使用,但只能按行使用:
sum(!complete.cases(airquality))
# [1] 42