同じ長さの 2 つのベクトルがあります。これは、4 つの行を特徴とする単純な例です。
[1] green
[2] black, yellow
[3] orange, white, purple
[4] NA
[1] red
[2] black
[3] NA
[4] blue
1 番目または 2 番目のベクトルに NA が存在する可能性がありますが、各行では、それらの少なくとも 1 つに常に値があります。最初のベクトルには 1 つ以上の値を含めることができますが、2 番目のベクトルには値を 1 つだけ含めることができます。出力が次のようになるように、これらの 2 つのベクトルを行ごとに「選択的に」結合したいと思います。
[1] green, red
[2] black, yellow
[3] orange, white, purple
[4] blue
これは、最初のベクトルの内容が常に出力に存在する必要があることを意味します。最初のベクトルの行に NA がある場合、2 番目のベクトルの同じ行の値によって上書きされます。
この値がまだ最初のベクトルの同じ行にない場合、2 番目のベクトルのコンテンツが追加されます。2 番目のベクトルの NA は無視されます。
私は試した:
merge(A,B)
merge(A, B, all=TRUE)
merge(A, B, all.x=TRUE)
merge(A, B, all.y=TRUE)
しかし、それらはすべてまったく異なる結果をもたらします。
上記のように、この「選択的な」結合を実現するにはどうすればよいですか?
よろしくお願いします!