我有
a <- matrix(c(1,3,4,2,2,6,3,1,6), nrow = 3, ncol=3, byrow=TRUE, dimnames = list(NULL, c("Apples", "Pears", "Oranges")))
Pears Apples Oranges
1 1 3 4
2 2 2 6
3 3 1 6
b <- matrix(c(1,3,2,6,3,6), nrow = 3, ncol=2, byrow=TRUE, dimnames = list(NULL, c( "Pears", "Oranges")))
Pears Oranges
1 1 4
2 2 6
3 3 6
我想合并它们以获得这样的结果:
Pears Apples Oranges
1 1 3 4
2 2 2 6
3 3 1 6
4 1 Na 4
5 2 Na 6
6 3 Na 6
即,按列名将它们组合在一起,在第二帧缺少值的情况下留下 Na/s,对于较大矩阵 a、较小矩阵 b 的一般情况
rbind 不起作用, merge 做了一些奇怪的事情。我追求什么?我也可以使用内存效率最高的东西,因为这最终会被做很多次,有很多列名。
谢谢,
-N
编辑:当我最初询问时,我可能应该提到这一点,但我实际上想达到上面的确切效果,但有一些非常重要的警告:
我正在使用矩阵
第一个矩阵将始终包含比第二个矩阵更多的列名
我可能想从包 bigmemory 创建一个 big.matrix。