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

如何通过R中的值合并两个大小不同的矩阵?,r,matrix,merge,R,Matrix,Merge,我正在寻找合并两个大小不同的矩阵的方法,通过合并具有相同值的列单元格 例如,下面两个矩阵: 矩阵1: a, 1 b, 4 c, 5 矩阵2: a, 8 c, 9 按第一列合并后: a, 1, 8 b, 4, NA c, 5, 9 谢谢大家! 可以指定'dimname',然后可以轻松使用merge() mat1 <- matrix(c("a","b","c", 1,4,5), ncol=2, dimnames =

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

例如,下面两个矩阵:

矩阵1:

a,  1  
b,  4  
c,  5
矩阵2:

a,  8  
c,  9
按第一列合并后:

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

谢谢大家!

可以指定'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

mat1
merge(mat1,mat2,by=“V1”,all=TRUE)
对于data.frame,还有一个模拟sql调用的
plyr::join
join(df1,df2,by=“ID”)
。如果完成那些与不匹配的行,我想删除整行呢?自我响应:那么“all.x”应该设置为FALSE。默认情况下,“all=FALSE”,这样合并(mat1,mat2,by=“id”)就足够了。这是by变量的内部联接或交集。另一方面,all.x=TRUE是左外连接,因此保留了x的所有值。