R で外部結合を行う方法 (例あり)


R で外部結合を実行するには、次の 2 つの一般的な方法があります。

方法 1: Base R を使用する

 merge(df1, df2, by=' column_to_join_on ', all= TRUE )

方法 2: dplyr を使用する

 library (dplyr)

full_join(df1, df2, by=' column_to_join_on ')

各メソッドは両方のテーブルからすべての行を返します。

どちらの方法でも同じ結果が得られますが、非常に大規模なデータセットではdplyr方法の方が高速に実行される傾向があります。

次の例は、次のデータ フレームでこれらの各関数を実際に使用する方法を示しています。

 #define first data frame
df1 = data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
                 points=c(18, 22, 19, 14, 14, 11, 20, 28))

df1

  team points
1 to 18
2 B 22
3 C 19
4 D 14
5 E 14
6 F 11
7 G 20
8:28 a.m.

#define second data frame
df2 = data. frame (team=c('A', 'B', 'C', 'D', 'L', 'M'),
                 assists=c(4, 9, 14, 13, 10, 8))

df2

  team assists
1 to 4
2 B 9
3 C 14
4 D 13
5 L 10
6 M 8

例 1: Base R を使用した外部結合

ベース R でmerge()関数を使用して、結合先の列として「チーム」列を使用して外部結合を実行できます。

 #perform outer join using base R
df3 <- merge(df1, df2, by=' team ', all= TRUE )

#view result
df3

   team points assists
1 to 18 4
2 B 22 9
3 C 19 14
4 D 14 13
5 E 14 NA
6 F 11 NA
7 G 20 NA
8:28 AM NA
9L NA 10
10M NA 8

両方のデータ フレームのすべての行が返されることに注意してください。

例 2: dplyr を使用した外部結合

dplyrパッケージのfull_join()関数を使用して、結合先の列として「team」列を使用して外部結合を実行できます。

 library (dplyr)

#perform outer join using dplyr 
df3 <- full_join(df1, df2, by=' team ')

#view result
df3

   team points assists
1 to 18 4
2 B 22 9
3 C 19 14
4 D 14 13
5 E 14 NA
6 F 11 NA
7 G 20 NA
8:28 AM NA
9L NA 10
10M NA 8

これは、ベース R のmerge()関数を使用して取得した結果に対応していることに注意してください。

追加リソース

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

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

コメントを追加する

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