数据集中往往存在缺失值,在进行数据分析前需要了解数据的缺失值情况。R语言中的一些基本函数可用于查询缺失数据,另外还有一些第三方包可用于查询和处理数据缺失。
基本的缺失值查询可以通过is.na()和complete.cases()函数,当存在缺失值NA或者NAN时is.na()返回TRUE, complete.cases()则返回FALSE。
#使用PimaIndiansDiabetes2数据集
require(mlbench)
data("PimaIndiansDiabetes2", package = 'mlbench')
#返回总的缺失值的个数和百分比(TRUE等价于1,FALSE等价于0)
sum(is.na(PimaIndiansDiabetes2))
mean(is.na(PimaIndiansDiabetes2))
#统计每行的缺失个数
rowmissing <- apply(PimaIndiansDiabetes2, 1,
function(x){sum(is.na(x))})
#统计每列的缺失个数
colmissing <- apply(PimaIndiansDiabetes2, 2,
function(x){sum(is.na(x))})
#返回没有缺失值的行
PimaIndiansDiabetes2[complete.cases(PimaIndiansDiabetes2),]
#返回包含一个或多个缺失值的行
PimaIndiansDiabetes2[!complete.cases