通过匹配行名和列名对2个矩阵的值求和

时间:2019-06-17 19:59:24

标签: r matrix sum match

我有2个矩阵A和B。我想通过匹配列名和行名将两个矩阵中的值相加。矩阵A具有所有可能的存储桶作为行名和列名。矩阵B仅包含其中的几个。别名和行名都相同。这就像一个交叉表。 (或混淆矩阵)

我希望最终矩阵C包含所有可能的行名,列名以及从A和B累加的值。

1 个答案:

答案 0 :(得分:0)

这里是一些伪数据的方式(理想情况下,您应该提供它)-

A <- matrix(1, nrow = 3, ncol = 3, dimnames = list(paste0("A", 1:3), paste0("A", 1:3)))
B <- matrix(2, nrow = 2, ncol = 2, dimnames = list(paste0("A", 2:3), paste0("A", 2:3)))

A
   A1 A2 A3
A1  1  1  1
A2  1  1  1
A3  1  1  1

B
   A2 A3
A2  2  2
A3  2  2

A[rownames(B), colnames(B)] <- A[rownames(B), colnames(B)] + B

A
   A1 A2 A3
A1  1  1  1
A2  1  3  3
A3  1  3  3