Dplyr を使用して複数の列にまたがるデータ フレームを結合する方法


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

 library (dplyr)

left_join(df1, df2, by=c(' x1 '=' x2 ', ' y1 '=' y2 '))

この特定の構文は、次の条件が当てはまる場合に左結合を実行します。

  • df1 の列x1の値は、df2 の列x2の値と一致します。
  • df1 のy1列の値は、df2 のy2列の値に対応します。

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

例: dplyr を使用して複数の列を結合する

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

 #define first data frame
df1 = data. frame (team=c('A', 'A', 'B', 'B'),
                 pos=c('G', 'F', 'F', 'G'),
                 dots=c(18, 22, 19, 14))

df1

  team pos points
1 AG 18
2 AF 22
3 BF 19
4 BG 14

#define second data frame
df2 = data. frame (team_name=c('A', 'A', 'B', 'C', 'C'),
                 position=c('G', 'F', 'F', 'G', 'F'),
                 assists=c(4, 9, 8, 6, 5))

df2

  team_name position assists
1 GA 4
2 AF 9
3 BF 8
4 CG 6
5 CF 5

dplyr で次の構文を使用すると、2 つの列に基づいて左結合を実行できます。

 library (dplyr)

#perform left join based on multiple columns
df3 <- left_join(df1, df2, by=c(' team '=' team_name ', ' pos '=' position '))

#view result
df3

  team pos points assists
1 AG 18 4
2 AF 22 9
3 BF 19 8
4 BG 14 NA

結果のデータ フレームには、 df1のすべての行と、チームとポジションの値が一致するdf2の行のみが含まれます。

また、両方のデータ フレームが同じ列名を共有している場合は、次の構文を使用するだけで複数の列を結合できることにも注意してください。

 library (dplyr)

#perform left join based on multiple columns
df3 <- left_join(df1, df2, by=c(' team ', ' position '))

追加リソース

次のチュートリアルでは、R で他の一般的な操作を実行する方法について説明します。

Rで左結合を行う方法
Rで正しい結合を行う方法
Rで内部結合を行う方法
Rで外部結合を行う方法

コメントを追加する

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