Cara menggabungkan bingkai data di beberapa kolom menggunakan dplyr
Anda dapat menggunakan sintaks dasar berikut untuk menggabungkan bingkai data di R berdasarkan beberapa kolom menggunakan dplyr:
library (dplyr) left_join(df1, df2, by=c(' x1 '=' x2 ', ' y1 '=' y2 '))
Sintaks khusus ini akan melakukan penggabungan kiri jika kondisi berikut ini benar:
- Nilai pada kolom x1 dari df1 cocok dengan nilai pada kolom x2 dari df2.
- Nilai kolom y1 dari df1 sesuai dengan nilai kolom y2 dari df2.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Menggabungkan beberapa kolom menggunakan dplyr
Misalkan kita memiliki dua frame data berikut di R:
#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
Kita dapat menggunakan sintaks berikut di dplyr untuk melakukan penggabungan kiri berdasarkan dua kolom:
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
Bingkai data yang dihasilkan berisi semua baris dari df1 dan hanya baris dari df2 yang nilai tim dan posisinya cocok.
Perhatikan juga bahwa jika kedua bingkai data berbagi nama kolom yang sama, Anda cukup menggunakan sintaks berikut untuk menggabungkan beberapa kolom:
library (dplyr) #perform left join based on multiple columns df3 <- left_join(df1, df2, by=c(' team ', ' position '))
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di R:
Bagaimana cara melakukan gabung kiri di R
Bagaimana cara melakukan join yang benar di R
Bagaimana cara melakukan inner join di R
Bagaimana cara melakukan gabung luar di R