如何从 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 值的行都已从矩阵中删除。
方法 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 值的列均已从矩阵中删除。
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 中执行缺失值的其他常见操作: