データフレームは同じ寸法または列名を持つことが保証されていないものの、私は、効率的に2つのデータフレームのエントリを合計します。マージは実際に私がここにいるものではありません。代わりに、追加されたデータフレームのいずれかに属するすべての行と列の名前を持つ出力オブジェクトを作成したいと思います。行/列ペアは、私がした場合、出力は、それらの和 追加(マージではない!)、不等行と列を持つ2つのデータフレーム
- :その出力の各位置において、Iは、計算された値は、次のロジックを使用します行/列ペアは、私は、行/列ペアは、I出力にその位置に0を有するようにする任意の入力行列に属していない場合、出力
- にその値を含めるだけ一つの入力データ・フレームに属します。
例として、次の入力データフレームを考慮してください。
df1 = data.frame(x = c(1,2,3), y = c(4,5,6))
rownames(df1) = c("a", "b", "c")
df2 = data.frame(x = c(7,8), z = c(9,10), w = c(2, 3))
rownames(df2) = c("a", "d")
> df1
x y
a 1 4
b 2 5
c 3 6
> df2
x z w
a 7 9 2
d 8 10 3
は私が最終的な結果は、私がこれまで何をやったか > df2
x y z w
a 8 4 9 2
b 2 5 0 0
c 3 6 0 0
d 8 0 10 3
になりたい -
dplyrのbind_rows/bind_colsは次のようにスローする可能性があります。 "エラー:互換性のない行数(3、2が必要です)"
は私が「マージ」は私の目的のために働いていない列名を、重複しているのどちらか - 何らかの理由でDF空を返します。
(all.rows <- unique(c(row.names(df1), row.names(df2))))
# [1] "a" "b" "c" "d"
(all.cols <- unique(c(names(df1), names(df2))))
# [1] "x" "y" "z" "w"
は、その後、私はすべて0に初期化マトリックスデータを(それらの行や列名を持つ出力マトリックスを作成します:
@DavidArenburgは、私が必要としていたよりもはるかに複雑なものにしていたので、本当にクレジットに値します。 – eipi10