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 で他の一般的なデータ フレーム関数を実行する方法について説明します。