现在位置: 首页 > R 教程 > 正文

R is.na() 函数 - 检测和处理缺失值

R 语言实例 R 语言实例

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)

执行以上代码输出结果为:

[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 语言实例 R 语言实例