如果我有2个具有随机NA值的矩阵,例如:
矩阵A:
1 2 3
1 5 NA 7
2 NA 3 8
3 NA 4 5
矩阵B:
1 2 3
1 NA 8 NA
2 2 5 9
3 NA 4 3
将它们相乘的最佳方法是什么?将NA值更改为0会产生不同的点积结果吗?
答案 0 :(得分:0)
NAs将被忽略:
## Dummy matrices
mat1 <- matrix(sample(1:9, 9), 3, 3)
mat2 <- matrix(sample(1:9, 9), 3, 3)
## Adding NAs
mat1[sample(1:9, 4)] <- NA
mat2[sample(1:9, 4)] <- NA
mat1
# [,1] [,2] [,3]
#[1,] 9 NA 3
#[2,] 2 NA NA
#[3,] NA 1 8
mat2
# [,1] [,2] [,3]
#[1,] NA NA 4
#[2,] NA 9 3
#[3,] NA 7 1
mat1 * mat2
# [,1] [,2] [,3]
#[1,] NA NA 12
#[2,] NA NA NA
#[3,] NA 7 8
mat1 %*% mat2
# [,1] [,2] [,3]
#[1,] NA NA NA
#[2,] NA NA NA
#[3,] NA NA NA
在这种情况下,点积仅产生NA,因为没有不涉及NA的操作。不同的矩阵可能会导致不同的结果。