如何从 r 中的矩阵中删除 na(举例)


您可以使用以下方法从 R 中的矩阵中删除 NA 值:

方法 1:删除具有 NA 值的行

 new_matrix <- my_matrix[ ! rowSums( is.na (my_matrix)),]

方法 2:删除具有 NA 值的列

 new_matrix <- my_matrix[, ! colSums( is.na (my_matrix))]

以下示例展示了如何在 R 中使用以下矩阵来实际使用每种方法:

 #create matrix
my_matrix <- matrix(c(NA, 0, NA, 5, 7, 4, 1, 3, 9, 5, 5, 8), nrow= 4 )

#view matrix
my_matrix

     [,1] [,2] [,3]
[1,] NA 7 9
[2,] 0 4 5
[3,] NA 1 5
[4,] 5 3 8

方法 1:删除具有 NA 值的行

以下代码显示如何从矩阵中删除包含 NA 值的所有行:

 #remove all rows with NA values
new_matrix <- my_matrix[ ! rowSums( is.na (my_matrix)),]

#view updated matrix
new_matrix

     [,1] [,2] [,3]
[1,] 0 4 5
[2,] 5 3 8

请注意,所有具有 NA 值的行都已从矩阵中删除。

相关:如何在 R 中使用 rowSums() 函数

方法 2:删除具有 NA 值的列

以下代码显示如何从矩阵中删除包含 NA 值的所有列:

 #remove all columns with NA values
new_matrix <- my_matrix[, ! colSums( is.na (my_matrix))]

#view updated matrix
new_matrix

     [,1] [,2]
[1,] 7 9
[2,] 4 5
[3,] 1 5
[4,] 3 8

请注意,所有具有 NA 值的列均已从矩阵中删除。

相关:如何在 R 中使用 colSums() 函数

Bonus:将矩阵中的 NA 值转换为零

如果你只是想将矩阵中的所有 NA 值转换为零,可以使用以下语法:

 #remove all columns with NA values
my_matrix[is. na (my_matrix)] <- 0

#view updated matrix
my_matrix

     [,1] [,2] [,3]
[1,] 0 7 9
[2,] 0 4 5
[3,] 0 1 5
[4,] 5 3 8

请注意,所有 NA 值均已转换为零。

其他资源

以下教程解释了如何在 R 中执行缺失值的其他常见操作:

如何从R中的向量中删除NA值
如何在R中查找和计算缺失值
如何在R中全部估算缺失值

添加评论

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