下面的例子可以解释我想要做什么,你可能知道一个有效的方法。使用R,最好没有循环,我想增加,例如,这个矩阵:
1 2
NA 3
4 5
通过其转置:
1 NA 4
2 3 5
得到(NA被忽略的地方):
(1x1)+(2x2) (2x3) (1x4)+(2x5)
(3x2) (3x3) (3x5)
(4x1)+(5x2) (5x3) (4x4)+(5x5)
这是:
05 06 12
06 09 15
14 15 41
答案 0 :(得分:1)
您可以将NAs替换为0,以便他们的产品不会对结果产生影响:
m1 = matrix(c(1,NA,4,2,3,5),ncol=2)
m1[is.na(m1)] = 0
m2 = t(m1)
m1%*%m2
[,1] [,2] [,3]
[1,] 5 6 14
[2,] 6 9 15
[3,] 14 15 41