A: 列名によってデータ フレームをマージする方法


次のメソッドを使用して、R で列名ごとにデータ フレームをマージできます。

方法 1: 一致する列名に基づいてマージする

 merge(df1, df2, by=' var1 ')

方法 2: 一致しない列名に基づいてマージする

 merge(df1, df2, by. x = ' var1 ', by. y = ' variable1 ')

方法 3: 複数の一致する列名に基づいてマージする

 merge(df1, df2, by=c(' var1 ', ' var2 '))

方法 4: 複数の不一致の列名に基づいてマージする

 merge(df1, df2, by. x =c(' var1 ', ' var2 '), by. y =c(' variable1 ', ' variable2 '))

次の例は、各メソッドを実際に使用する方法を示しています。

例 1: 一致する列名に基づいてマージする

次のコードは、一致する列名に基づいて R の 2 つのデータ フレームをマージする方法を示しています。

 #define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  rebounds=c(22, 31, 29, 20))

#merge based on one column with matching name
merge(df1, df2, by=' team ')

  team points rebounds
1 A 88 22
2 B 98 31
3 C 104 29
4 D 100 20

その結果、チーム列を使用して各データ フレーム内の行と一致するデータ フレームが得られます。

例 2: 一致しない列名に基づいてマージする

次のコードは、一致しない列名に基づいて R で 2 つのデータ フレームをマージする方法を示しています。

 #define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team_name=c('A', 'B', 'C', 'D'),
                  rebounds=c(22, 31, 29, 20))

#merge based on one column with unmatched name
merge(df1, df2, by. x = ' team ', by. y = ' team_name ')

  team points rebounds
1 A 88 22
2 B 98 31
3 C 104 29
4 D 100 20

結果は、最初のデータ フレームのチーム列と 2 番目のデータ フレームのチーム名列を使用して行と一致するデータ フレームになります。

例 3: 複数の一致する列名に基づいてマージする

次のコードは、複数の一致する列名に基づいて R で 2 つのデータ フレームをマージする方法を示しています。

 #define data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  rebounds=c(22, 31, 29, 20))

#merge based on multiple columns with matching names
merge(df1, df2, by=c(' team ', ' position '))

  team position points rebounds
1 AF 98 31
2 AG 88 22
3 BF 100 20
4 BG 104 29

結果は、各データ フレームのチームポジションの列を使用して、各データ フレームの行と一致するデータ フレームになります。

例 4: 複数の不一致列名に基づいてマージする

次のコードは、複数の不一致の列名に基づいて R で 2 つのデータ フレームをマージする方法を示しています。

 #define data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team_name=c('A', 'A', 'B', 'B'),
                  position_name=c('G', 'F', 'G', 'F'),
                  rebounds=c(22, 31, 29, 20))

#merge based on multiple columns with matching names
merge(df1, df2, by. x =c(' team ', ' position '), by. y =c(' team_name ', ' position_name '))

  team position points rebounds
1 AF 98 31
2 AG 88 22
3 BF 100 20
4 BG 104 29

結果は、最初のデータ フレームのチーム列ポジション列、および 2 番目のデータ フレームのチーム名列ポジション名列を使用して行を照合するデータ フレームになります。

追加リソース

次のチュートリアルでは、R で他の一般的なデータ フレーム関数を実行する方法について説明します。

Rで左結合を行う方法
Rで内部結合を行う方法
RでVLOOKUPを行う方法
Rでデータフレームに行を追加する方法

コメントを追加する

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