R is.na() 函数 - 检测和处理缺失值
R is.na() 函数用于检测向量或数据框中哪些元素是缺失值 NA。
缺失值处理是数据分析中必不可少的一步,直接影响分析结果的准确性。
is.na() 函数语法格式如下:
is.na(x) anyNA(x) # 检查是否存在任何 NA complete.cases(x) # 检查哪些行没有 NA
参数说明:
x 待检查的向量、矩阵或数据框。
实例
# 检测向量中的 NA
x <- c(10, NA, 20, NA, 30, 40)
print("NA 检测:")
print(is.na(x))
print(paste("NA 个数:", sum(is.na(x))))
print(paste("是否有 NA:", anyNA(x)))
# 在数据框中处理 NA
df <- data.frame(
姓名 = c("张三", "李四", "王五", "赵六"),
成绩 = c(88, NA, 76, NA),
年龄 = c(25, 30, NA, 28)
)
print("\n数据框:")
print(df)
# 找出完整行(不含 NA)
print("完整行:")
print(df[complete.cases(df), ])
# 统计每列的 NA 数量
print("每列 NA 数:")
print(colSums(is.na(df)))
# 删除含 NA 的行
df_clean <- na.omit(df)
print("\n删除 NA 后:")
print(df_clean)
x <- c(10, NA, 20, NA, 30, 40)
print("NA 检测:")
print(is.na(x))
print(paste("NA 个数:", sum(is.na(x))))
print(paste("是否有 NA:", anyNA(x)))
# 在数据框中处理 NA
df <- data.frame(
姓名 = c("张三", "李四", "王五", "赵六"),
成绩 = c(88, NA, 76, NA),
年龄 = c(25, 30, NA, 28)
)
print("\n数据框:")
print(df)
# 找出完整行(不含 NA)
print("完整行:")
print(df[complete.cases(df), ])
# 统计每列的 NA 数量
print("每列 NA 数:")
print(colSums(is.na(df)))
# 删除含 NA 的行
df_clean <- na.omit(df)
print("\n删除 NA 后:")
print(df_clean)
执行以上代码输出结果为:
[1] "NA 检测:" [1] FALSE TRUE FALSE TRUE FALSE FALSE [1] "NA 个数: 2" [1] "是否有 NA: TRUE" [1] "数据框:" 姓名 成绩 年龄 1 张三 88 25 2 李四 NA 30 3 王五 76 NA 4 赵六 NA 28 [1] "完整行:" 姓名 成绩 年龄 1 张三 88 25 [1] "每列 NA 数:" 姓名 成绩 年龄 0 2 1 [1] "删除 NA 后:" 姓名 成绩 年龄 1 张三 88 25

R 语言实例