R で左結合を行う方法 (例付き)
merge()関数を使用して、ベース R で左結合を実行できます。
#left join using base R merge(df1,df2, all. x = TRUE )
dplyrパッケージのleft_join()関数を使用して、左結合を実行することもできます。
#left join using dplyr
dplyr::left_join(df2, df1)
注:非常に大きなデータ セットを操作している場合は、 left_join()関数の方がmerge()関数よりも高速になる傾向があります。
次の例は、次のデータ フレームでこれらの各関数を実際に使用する方法を示しています。
#define first data frame df1 <- data. frame (team=c(' Mavs ', ' Hawks ', ' Spurs ', ' Nets '), dots=c(99, 93, 96, 104)) df1 team points 1 Mavs 99 2 Hawks 93 3 Spurs 96 4 Nets 104 #define second data frame df2 <- data. frame (team=c(' Mavs ', ' Hawks ', ' Spurs ', ' Nets '), rebounds=c(25, 32, 38, 30), assists=c(19, 18, 22, 25)) df2 team rebound assists 1 Mavs 25 19 2 Hawks 32 18 3 Spurs 38 22 4 Nets 30 25
例 1: Base R を使用した左結合
ベース R でmerge()関数を使用して、結合先の列として「チーム」列を使用して左結合を実行できます。
#perform left join using base R merge(df1, df2, by=' team ', all. x = TRUE ) team points rebound assists 1 Hawks 93 32 18 2 Mavs 99 25 19 3 Nets 104 30 25 4 Spurs 96 38 22
例 2: dplyr を使用した左結合
dplyr パッケージのleft_join()関数を使用して、結合先の列として「team」列を使用して左結合を実行できます。
library (dplyr) #perform left join using dplyr left_join(df1, df2, by=' team ') team points rebound assists 1 Mavs 99 25 19 2 Hawks 93 32 18 3 Spurs 96 38 22 4 Nets 104 30 25
これら 2 つの関数の違いの 1 つは、 merge()関数が結合の実行に使用した列に基づいて行をアルファベット順に自動的に並べ替えることです。
逆に、 left_join()関数は、最初のデータ フレーム内の行の元の順序を保存します。
追加リソース
次のチュートリアルでは、R で他の一般的な操作を実行する方法について説明します。
Rで内部結合を行う方法
Rでファジーマッチングを実行する方法
Rでデータフレームに列を追加する方法
Rでデータフレームから列を削除する方法