📜  如何填写 na 值 - R 编程语言(1)

📅  最后修改于: 2023-12-03 15:24:41.219000             🧑  作者: Mango

如何填写 NA 值 - R 编程语言

在 R 编程语言中,NA (Not Available) 是一种用于表示缺失值或无法计算的值的特殊类型。有时候我们需要对这些缺失值进行填充或者删除操作,所以本文将介绍如何在 R 中填充 NA 值。

创建包含 NA 值的数据

首先我们需要创建一个包含 NA 值的数据集来进行操作,可以使用以下代码创建一个包含 10 个 NA 值的向量:

x <- rep(NA, 10)

如果要创建包含 NA 值的数据框,可以使用以下代码:

df <- data.frame(x = c(1:5, NA, 7:10), y = c(letters[1:4], NA, letters[6:10]))
检查 NA 值

使用函数 is.na() 可以检查数据集中是否存在 NA 值。如下:

is.na(x) # 检查向量中的 NA 值
is.na(df) # 检查数据框中的 NA 值
填充 NA 值

有时候需要将 NA 值填充为其他值,例如用 0 填充 NA 值。

使用 ifelse 函数

使用 ifelse() 函数可以将 NA 值作为条件进行填充。如下:

x <- ifelse(is.na(x), 0, x)
df$x <- ifelse(is.na(df$x), 0, df$x)
df$y <- ifelse(is.na(df$y), "unknown", df$y)
使用 fill 函数

tidyr 包中的 fill() 函数可以在数据框中填充连续的 NA 值。如下:

library(tidyr)
df <- data.frame(x = c(1:5, NA, NA, 8:10), y = c(letters[1:3], NA, NA, letters[6:8]), z = c("a", NA, NA, "b", "c", NA, "d", "e", "f", "g"))
fill(df, x, y) # 填充 x 和 y 列中的连续 NA 值
删除 NA 值

有时候需要将包含 NA 值的行或列从数据集中删除。

删除包含 NA 值的行或列

使用函数 complete.cases() 可以返回数据集中完整观测值的逻辑向量。我们可以使用该向量对数据集中包含 NA 值的行或列进行删除。如下:

df1 <- df[complete.cases(df), ] # 删除包含 NA 值的行
df2 <- df[, colSums(is.na(df)) == 0] # 删除包含 NA 值的列
删除特定列中的 NA 值

使用 dplyr 包中的 filter() 函数和 is.na() 函数可以删除特定列中的 NA 值。如下:

library(dplyr)
df <- filter(df, !is.na(x)) # 删除 x 列中的 NA 值
结论

在 R 编程过程中,处理 NA 值是一项常见任务。通过本文所介绍的方法,我们可以轻松地填充或删除 NA 值。在收集或处理数据时,我们应该时刻注意哪些变量包含 NA 值,并决定采取的处理方式。