如何用R中的值合并两个不同大小的矩阵?

时间:2015-04-21 22:37:25

标签: r matrix merge

我正在寻找通过合并具有相同值的列的单元格来合并具有不同大小的两个矩阵的方法。

例如接下来的两个矩阵:

Matrix 1:

a,  1  
b,  4  
c,  5

Matrix 2:

a,  8  
c,  9

在第一栏合并之后:

a,  1,  8  
b,  4,  NA  
c,  5,  9

谢谢!

1 个答案:

答案 0 :(得分:0)

'dimname'可以指定,然后可以轻松使用merge()

mat1 <- matrix(c("a","b","c", 1,4,5), ncol=2,
               dimnames = list(c("1", "2", "3"), c("id", "v1")))
mat2 <- matrix(c("a","c", 8, 9), ncol=2,
               dimnames = list(c("1", "2"), c("id", "v2")))

merge(mat1, mat2, by="id", all.x = TRUE)
  id v1   v2
1  a  1    8
2  b  4 <NA>
3  c  5    9

行维名称可以省略为dimnames = list(NULL, c("id", "v1"))