2 つのテーブルがあり、一方から他方に情報を転送したいと考えています。
名前とサブネームがあります。名前とサブネームの組み合わせにはそれぞれ値が関連付けられており、最初のステップで個別に計算されます。
次のステップでは、各名前に 2 つの特別なサブネーム (sub1 と sub2) が割り当てられ、各名前とサブネームのペアに関連付けられた値を取得する必要があります。
つまり、名前ごとに、name+sub1 の値と name+sub2 の値を取得する必要があります。
最初のテーブルでは、各行に名前と、考えられるすべてのサブネームの値があります。ここで、サブネームはx
、y
、w
、および と呼ばれz
ます。値は数値です。
Name x y w z
abc 4 8 3 1
def 2 5 1 7
2 番目の表では、各行の最初の列に名前があり、次の 2 列に 2 つの関連するサブ名があります。両方のテーブルの最初の列に名前の完全なセットがありますが、2 番目のテーブルのすべてのサブネームが最初のテーブルに存在するわけではありません。これらの行については、「NA」を返すだけで問題ありません。
Name Sub1 Sub2
abc x y
def w z
これらのテーブルを結合したいので、次のようになります。
Name Sub1 Sub2 Sub1.Value Sub2.Value
abc x y 4 8
def w z 1 7
これらは、コピー/貼り付け可能なサンプル テーブルです (最初のテーブルには、実際には ~1k 行と ~30k 列があります)。
first.table=data.frame(Name=c('abc','def'),x=c(4,2),y=c(8,5),w=c(3,1),z=c(1,7))
second.table=data.frame(Name=c('abc','def'),Sub1=c('x','w'),Sub2=c('y','z'))