使用R:通过其转置乘以矩阵,同时忽略缺失值

时间:2017-06-20 00:23:21

标签: r matrix

下面的例子可以解释我想要做什么,你可能知道一个有效的方法。使用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

1 个答案:

答案 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