清洗数据是指对数据进行重新审查和校验的过程,目的在于删除重复信息,纠正存在的错误,并提供数据一致性。
处理缺失值
R提供了一些函数,用于缺失值检测和缺失值处理:
函数 | 描述 |
---|---|
is.na(x) | 返回一个与x等长的逻辑向量,并且由相应位置的元素是否是NA来决定这个逻辑向量相应位置的元素是TRUE还是FALSE。TRUE表示该位置的元素是缺失值 |
anyNA(x,recursive = FALSE) | 判断数据中是否存在缺失值,返回TRUE或FALSE值。若存在缺失值则返回FALSE |
na.omit(x) | 删除含有缺失值的观测 |
complete.cases(x) | 返回一个逻辑向量,不存在缺失值的行的值为TRUE,存在缺失值的行的值为FALSE |
示例:
score <- data.frame(student = c("A","B","C","D"),
gender = c("M","M","F","F"),
math = c(90,70,80,60),
Eng = c(88,78,69,98),
p1 = c(66,59,NA,88)) # 创建数据框
anyNA(score) # 判断score中是否存在缺失值,返回TRUE或FALSE值。若存在缺失值则返回FALSE
# 运行结果:
# [1] TRUE
is.na(score)
# 运行结果:
# student gender math Eng p1
# [1,] FALSE FALSE FALSE FALSE FALSE
# [2,] FALSE FALSE FALSE FALSE FALSE
# [3,] FALSE FALSE FALSE FALSE TRUE
# [4,] FALSE FALSE FALSE FALSE FALSE
complete.cases(x)
# 运行结果:
# [1] TRUE TRUE FALSE TRUE
score[complete.cases(score),]
# 运行结果:
# student gender math Eng p1
# 1 A M 90 88 66
# 2