長さが等しくない2つのデータフレームがあります。Aの列を2つの列に基づいてBにコピーしたいとします。しかし、データフレームは同じ長さではないので、一致が発生したときはいつでも同じ行を複数コピーする必要があります。たとえば、次のように1つのデータフレーム内の列を複数の行にまたがって複写する
Team Season stat1 stat2 stat3
Maryland 2002 23.0 2.54 3.43
Duke 2002 32.1 2.11 2.56
Siena 2002 21.5 3.11 2.11
B
Team Season
Maryland 2002
Siena 2002
Maryland 2002
Duke 2002
決勝
Team Season stat1 stat2 stat3
Maryland 2002 23.0 2.54 3.43
Siena 2002 21.5 3.11 2.11
Maryland 2002 23.0 3.11 3.43
Duke 2002 32.1 2.11 2.56
だから、私はSTAT1、STAT2をコピーすると、 AからBへのstat3をTeamとSeasonの文字列に基づいて返します。 Marylandが複数回出現するので、stat1、stat2、およびstat3を両方の行にコピーしたいとします。また、長年のために、2002年シーズンのデータのみを掲載しましたが、チームとシーズンの両方に基づいて対応したいと考えています。私は、マージ関数を使用してみましたが、複数の行にコピーするようではありません。
ノートこれは私の最初の投稿ですので、最高のフォーマットをしていないことを私に許してください。前もって感謝します。
データフレームBの元の順序を維持する方法はありますか?あなたのコードは動作しますが、行はアルファベット順に返されます。 2列の各グループがトーナメントゲーム(チーム1対チーム2)であるため、Bの元の順序を維持したい。 – JRP
data_b <-as.data.table(data_b)、data_a <-as.data.table(data_a)、final <-merge(data_b、data_a、by = c( "Team"、 "Season")、all.x = TRUE、sort = FALSE) – Vitalijs