当矩阵中存在NA
值时,对R中的矩阵进行乘法运算。
关于'右'方式进行列举乘法I R的一般建议似乎是:
m %*% diag(v)
支持:
t(t(m) * v)
但是,当我开始对包含NA
值的矩阵开始使用此方法时,结果矩阵对包含NA
NA
个值
当通过矩阵转置时间向量转换为向量时,行为与预期一致。
在进行正常矩阵演算时,预计会出现NA
值,我相信这是总和
m[2,2] = 0 * NA + 2 * 4 + 0 * 6 + 0 * 8 + 0 * 10
其中NA
值优先于乘法中的0值。
当R矩阵乘法*
执行elementvise乘法,从而不会遇到0 * NA
问题。
在进行标准矩阵乘法时,是否可以将0 * NA == NA
的默认规则更改为== 0
,以便获得优化矩阵计算rutines的优势?
m <- as.matrix(seq(1,10))
dim(m) <- c(2,5)
v <- as.vector(1:5)
m[2,1] <- NA
m2 <- t(t(m) * v)
m3 <- m %*% diag(v)
> m2
[,1] [,2] [,3] [,4] [,5]
[1,] 1 6 15 28 45
[2,] NA 8 18 32 50
> m3
[,1] [,2] [,3] [,4] [,5]
[1,] 1 6 15 28 45
[2,] NA NA NA NA NA
由于