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 で他の一般的な操作を実行する方法について説明します。