A: 複数の列に基づいてデータ フレームを結合する方法


次の基本構文を使用して、複数の列に基づいて R の 2 つのデータ フレームをマージできます。

 merge(df1, df2, by. x =c(' col1 ', ' col2 '), by. y =c(' col1 ', ' col2 '))

次の例は、この構文を実際に使用する方法を示しています。

例: 複数の列にわたるデータ ブロックをマージする

R に次の 2 つのデータ フレームがあるとします。

 #define data frames
df1 = data. frame (playerID=c(1, 2, 3, 4, 5, 6),
                 team=c('A', 'B', 'B', 'B', 'C', 'C'),
                 dots=c(19, 22, 25, 29, 34, 39))

df2 = data. frame (playerID=c(1, 2, 3, 4),
                 tm=c('A', 'B', 'B', 'B'),
                 rebounds=c(7, 8, 8, 14))

#view first data frame
df1

  playerID team points
1 1 A 19
2 2 B 22
3 3 B 25
4 4 B 29
5 5 C 34
6 6 C 39

#view second data frame
df2 

  playerID tm rebounds
1 1 To 7
2 2 B 8
3 3 B 8
4 4 B 14

どちらのデータ フレームもplayerID列を共有しますが、team 列の名前は各データ フレームで異なることに注意してください。

  • 最初のデータフレームには「チーム」列があります
  • 2 番目のデータ フレームには列 ‘ tm ‘ があります

playerID 列とチーム列に基づいてこれらのデータ フレームをマージするには、 by.x 引数by.y引数を使用する必要があります。

次のコードを使用してこのマージを実行できます。

 #merge two data frames
merged = merge(df1, df2, by. x =c(' playerID ', ' team '), by. y =c(' playerID ', ' tm '))

#view merged data frame
merged

  playerID team points rebounds
1 1 A 19 7
2 2 B 22 8
3 3 B 25 8
4 4 B 29 14

最終的にマージされたデータ フレームには、元の 2 つのデータ フレームに属する 4 人のプレーヤー全員のデータが含まれます。

追加リソース

次のチュートリアルでは、R で他の一般的なデータ フレーム関数を実行する方法について説明します。

Rで左結合を行う方法
RでVLOOKUPを行う方法
Rでデータフレームに行を追加する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です