如何简单地用NA计算行数-R

Chr*_*ris 2 row r dataframe na

我试图计算具有整个df的NA的行数,因为我想计算具有NA的行占df的总行数的百分比。

我已经看过这篇文章:确定具有NA的行数,但它仅显示特定范围的列。

De *_*ica 5

tl; dr:明智的选择sum(!complete.cases(DF)),或者sum(apply(DF, 1, anyNA))

有多种方法可以查看NA数据帧中值的数量,比例或位置:

其中大多数都是从逻辑数据帧开始的TRUE,每个对象NA以及FALSE其他地方都有。对于基本数据集airquality

is.na(airquality)
Run Code Online (Sandbox Code Playgroud)

NA该数据集中有44个值

sum(is.na(airquality))
# [1] 44
Run Code Online (Sandbox Code Playgroud)

您可以查看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 
Run Code Online (Sandbox Code Playgroud)

您也可以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
Run Code Online (Sandbox Code Playgroud)

complete.cases() 可以使用,但只能逐行使用:

sum(!complete.cases(airquality))
# [1] 42
Run Code Online (Sandbox Code Playgroud)