如何在 R 中通过合并行来合并两个矩阵?


合并行是指我们希望连接矩阵的行,但创建单独的列,如原始矩阵中所示。例如,如果我们有如下图所示的两个矩阵 M1 和 M2 −

M1
1 2 3
3 2 1

M2
2 3 5
1 2 3

然后,通过合并行来合并这两个矩阵将产生 −

1 2 3 2 3 5
3 2 1 1 2 3

示例 1

实时演示

> M1<-matrix(rpois(40,5),nrow=20)
> M1

输出

      [,1] [,2]
[1,]  5     2
[2,]  7     4
[3,]  3     6
[4,]  7     7
[5,]  5     3
[6,]  2     7
[7,]  4     7
[8,]  10    7
[9,]  7     2
[10,] 2     4
[11,] 7     5
[12,] 1     6
[13,] 2     3
[14,] 4     6
[15,] 7     6
[16,] 5     7
[17,] 3     2
[18,] 7     4
[19,] 9     6
[20,] 5     6

示例

实时演示

> M2<-matrix(rpois(40,5),nrow=20)
> M2

输出

     [,1] [,2]
[1,]  4    7
[2,]  2    9
[3,]  5    3
[4,]  2    10
[5,]  5    2
[6,]  5    5
[7,]  3    7
[8,]  6    5
[9,]  4    4
[10,] 5    0
[11,] 3    3
[12,] 5    2
[13,] 3    8
[14,] 2    6
[15,] 2    4
[16,] 10   5
[17,] 5    8
[18,] 1    4
[19,] 6    6
[20,] 4    6

按行合并 M1 和 M2 −

> merge(M1,M2,by="row.names",all=TRUE)

输出

   Row.names V1.x V2.x V1.y V2.y
1  1         5    2    4    7
2  10        2    4    5    0
3  11        7    5    3    3
4  12        1    6    5    2
5  13        2    3    3    8
6  14        4    6    2    6
7  15        7    6    2    4
8  16        5    7    10   5
9  17        3    2    5    8
10 18        7    4    1    4
11 19        9    6    6    6
12 2         7    4    2    9
13 20        5    6    4    6
14 3         3    6    5    3
15 4         7    7    2    10
16 5         5    3    5    2
17 6         2    7    5    5
18 7         4    7    3    7
19 8         10   7    6    5
20 9         7    2    4    4

示例 2

实时演示

> M3<-matrix(rpois(40,1),nrow=20)
> M3

输出

     [,1] [,2]
[1,]  0   1
[2,]  0   1
[3,]  3   0
[4,]  2   0
[5,]  0   1
[6,]  2   1
[7,]  1   0
[8,]  2   0
[9,]  2   1
[10,] 0   1
[11,] 3   0
[12,] 2   0
[13,] 2   0
[14,] 1   2
[15,] 1   2
[16,] 0   1
[17,] 4   1
[18,] 1   1
[19,] 1   2
[20,] 1   1

示例

实时演示

> M4<-matrix(rpois(40,1),nrow=20)
> M4

输出

     [,1] [,2]
[1,]  1    0
[2,]  2    2
[3,]  1    0
[4,]  1    0
[5,]  0    2
[6,]  1    1
[7,]  2    0
[8,]  2    1
[9,]  0    0
[10,] 0    1
[11,] 3    0
[12,] 3    2
[13,] 3    5
[14,] 0    0
[15,] 2    1
[16,] 0    0
[17,] 1    1
[18,] 0    0
[19,] 1    1
[20,] 1    2

按行合并 M3 和 M4 −

> merge(M3,M4,by="row.names",all=TRUE)

输出

   Row.names V1.x V2.x V1.y V2.y
1  1         0    1    1    0
2  10        0    1    0    1
3  11        3    0    3    0
4  12        2    0    3    2
5  13        2    0    3    5
6  14        1    2    0    0
7  15        1    2    2    1
8  16        0    1    0    0
9  17        4    1    1    1
10 18        1    1    0    0
11 19        1    2    1    1
12 2         0    1    2    2
13 20        1    1    1    2
14 3         3    0    1    0
15 4         2    0    1    0
16 5         0    1    0    2
17 6         2    1    1    1
18 7         1    0    2    0
19 8         2    0    2    1
20 9         2    1    0    0

更新于: 2021 年 3 月 4 日

365 次浏览

踏上你的 事业旅程

完成课程后获得认证

开始学习
广告
© . All rights reserved.