如何在 r 中使用 na.omit(带有示例)


您可以使用 R 中的na.omit()函数删除向量、矩阵或数据框中的所有不完整情况。

该函数使用以下基本语法:

 #omit NA values from vector
x <- na. omitted (x)

#omit rows with NA in any column of data frame
df <- na. omitted (df)

#omit rows with NA in specific column of data frame
df <- df[ ! (is. na (df$column)), ]

以下示例展示了如何在实践中使用此功能。

示例1:从向量中省略NA值

下面的代码展示了如何从向量中省略所有 NA 值:

 #definevector
x <- c(1, 24, NA, 6, NA, 9)

#omit NA values from vector
x <- na. omitted (x)

x

[1] 1 24 6 9
attr(,"na.action")
[1] 3 5
attr(,"class")
[1] “omitted”

输出的第一行显示没有 NA 值的向量,而接下来的两行显示有关 NA 值位置的附加信息。

我们可以使用以下代码简单地返回不带 NA 值的向量:

 #definevector
x <- c(1, 24, NA, 6, NA, 9)

#omit NA values from vector
x <- as. numeric (na. omit (x))

x

[1] 1 24 6 9

示例 2:省略数据帧任何列中带有 NA 的行

下面的代码展示了如何省略数据框任意列中具有 NA 值的所有行:

 #define data frame
df <- data. frame (x=c(1, 24, NA, 6, NA, 9),
                 y=c(NA, 3, 4, 8, NA, 12),
                 z=c(NA, 7, 5, 15, 7, 14))

#view data frame
df

   X Y Z
1 1 NA NA
2 24 3 7
3 NA 4 5
4 6 8 15
5 NA NA 7
6 9 12 14

#omit rows with NA value in any column data frame
df <- na. omitted (df)

#view data frame 
df

   X Y Z
2 24 3 7
4 6 8 15
6 9 12 14

示例 3:省略数据帧特定列中带有 NA 的行

要省略数据框特定列中具有 NA 值的行,实际上使用is.na()函数更容易,如下所示:

 #define data frame
df <- data. frame (x=c(1, 24, NA, 6, NA, 9),
                 y=c(NA, 3, 4, 8, NA, 12),
                 z=c(NA, 7, 5, 15, 7, 14))

#view data frame
df

   X Y Z
1 1 NA NA
2 24 3 7
3 NA 4 5
4 6 8 15
5 NA NA 7
6 9 12 14

#remove rows with NA value in x column
df <- df[ ! (is. na (df$x)), ]

#view data frame 
df

   X Y Z
1 1 NA NA
2 24 3 7
4 6 8 15
6 9 12 14

其他资源

如何在 R 中使用“Is Not NA”
如何在 R 中使用 is.null
如何在R中全部估算缺失值
如何在 R 中用字符串替换 NA

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注