私が持っている
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
つまり、列名でそれらを組み合わせて、2番目のフレームに値がないままNa / sを残します。一般的な場合、行列aが大きく、行列bが小さくなります。
rbindは機能せず、mergeは奇妙なことをします。私は何を求めていますか?これは、最終的には多くの列名を使用して何度も実行されるため、使用可能な最もメモリ効率の高いものでも実行できます。
ありがとう、
-N
編集:私が最初に尋ねたときにおそらくこれに言及するべきでしたが、実際には上記のように正確な効果を達成したいのですが、いくつかのかなり大きな注意点があります:
行列を使用しています
最初のマトリックスには、常に2番目のマトリックスよりも多くのcolnameが含まれます
パッケージbigmemoryからbig.matrixを作成したいと思うかもしれません。