首页 > 解决方案 > 如何在R中合并两个大小相同的矩阵?

问题描述

我有两个大小相同的矩阵。我想合并它们。

输入矩阵 A:

  v1 v2 v3 v4 v5 v6
1  0  5  8  1  0  0
2  5  0  2  4  0  0
3  8  2  0  0  0  0
4  0  0  0  0  0  0
5  0  0  0  0  0  0
6  0  0  0  0  0  0

输入矩阵 B:

  v1 v2 v3 v4 v5 v6
1  0  0  0  1  2  0
2  0  0  0  4  3  0
3  0  0  0  2  0  0
4  1  4  2  0  0  0
5  2  3  0  0  0  0
6  0  0  0  0  0  0

结果应该是这样的:

  v1 v2 v3 v4 v5 v6
1  0  5  8  1  2  0
2  5  0  2  4  3  0
3  8  2  0  2  0  0
4  1  4  2  0  0  0
5  2  3  0  0  0  0
6  0  0  0  0  0  0

我发现很多关于合并两个不同大小的矩阵的问题,但很少有关于相同大小矩阵的问题。矩阵是对称的,对角线上为 0。有谁知道如何解决这个问题?非常感谢!

标签: rmatrix

解决方案


您可以获取矩阵中的 0 索引A并替换 中的相应元素B

inds <- A == 0
A[inds] <- B[inds]
A

#  v1 v2 v3 v4 v5
#1  0  5  8  1  2
#2  5  0  2  4  3
#3  8  2  0  2  5
#4  1  4  2  0  3
#5  2  3  5  3  0

推荐阅读