4

長さが異なる2つのテーブルがあり、それらを2つの共通の列(シーズンとクライアント)でマージし、共通の要素がない場合はセルにNAを入力する必要があります。以下に、2つの元のテーブルと必要なファイナルテーブルのごく一部を示します。私は多くのことを試みましたが成功しませんでした。

season  client.ID   qtty
1998    13  30
1999    13  30
2000    13  29
1998    28  18
1999    28  18
2000    28  18
1998    35  21
1999    35  21
2000    35  21

season  client.ID   vessel.ID   overLength
1998    28  29  17.1
1998    28  1809    4.26
1998    28  2215    9.45
1998    28  4173    5.8
1998    28  8151    4.5
1999    28  29  17.1
1999    28  1809    4.26
1999    28  2215    9.45
1999    28  4173    5.8
1999    28  8151    4.5
2000    28  29  17.1
2000    28  1809    4.26
2000    28  2215    9.45
2000    28  4173    5.8
2000    28  8151    4.5
1998    35  36  9.91
1999    35  36  9.91
2000    35  36  9.91
1998    35  40  9.91
1999    35  40  9.91
2000    35  40  9.91


season  client.ID   vessel.ID   overLength  qtty
1998    13  NA  NA  30
1999    13  NA  NA  30
2000    13  NA  NA  29
1998    28  29  17.1    18
1998    28  1809    4.26    18
1998    28  2215    9.45    18
1998    28  4173    5.8 18
1998    28  8151    4.5 18
1999    28  29  17.1    18
1999    28  1809    4.26    18
1999    28  2215    9.45    18
1999    28  4173    5.8 18
1999    28  8151    4.5 18
2000    28  29  17.1    18
2000    28  1809    4.26    18
2000    28  2215    9.45    18
2000    28  4173    5.8 18
2000    28  8151    4.5 18
1998    35  36  9.91    21
1999    35  36  9.91    21
2000    35  36  9.91    21
1998    35  40  9.91    21
1999    35  40  9.91    21
2000    35  40  9.91    21
4

1 に答える 1

7

これはmergeall = TRUE

あなたのデータdata1data2

それから

merge(data1, data2, all = TRUE)

動作するはずです。

何をマージするかを指定したい場合(使用したくない共通の列がある場合)

 merge(data1, data2, all = TRUE, by = c('season', 'client.ID'))
于 2012-10-29T04:01:54.240 に答える