Join Data Frame dalam R
29 January 2022 | Tags: Join dalam R, Join dengan dplyr, Join dengan Merge, R untuk Join
Join atau merge merupakan penggabungan dataset yang dilakukan melalui kolom / key tertentu yang memiliki nilai terkait untuk mendapatkan dataset dengan informasi lengkap. Join Data Frame dengan R akan membantu kita untuk menampilkan informasi yang lengkap untuk disajikan.
Misalkan kita memiliki dua buah dataset yaitu: produk dan kategori. Pada dataset produk terdapat atribut kategoriID untuk menghubungkan dengan dataset kategori.
Jika anda sudah terbiasa menggunakan SQL, maka untuk melakukan join dari data frame atau tabel di atas, kita bisa menggunakan query seperti berikut:
SELECT df_produk.*,kategoriNama FROM df_produk LEFT JOIN df_kategori ON df_produk.kategoriID=df_kategori.kategoriID
Dalam R, kita bisa melakukan join dengan cara: merge dan menggunakan library dplyr. Sama halnya seperti SQL, untuk join dalam R kita bisa melakukan operasi left join, inner join, right join dan sebagainya.
Join dengan MERGE
Perintah untuk melakukan join dengan merge adalah
merge(x=dataFrame1, y=dataFrame2, by=(AtributKey),opsi...)
Opsi yang bisa diterapkan misalnya melakukan operasi left join, inner join, right join dan sebagainya.
Join dengan dplyr
Join juga bisa menggunakan library dplyr. Adapun perintahnya adalah:
library(dplyr) df3= dataFrame1 %>% inner_join(dataFrame2,by="AtributKey")
Ok, sekarang kita coba menerapkan join untuk contoh kasus Produk dan Kategori seperti relasi yang ditunjukkan oleh gambar di atas. Untuk mengerjakan proyek R, saya lebih suka menuliskan bari kode dengan R Markdown di RStudio.
Langkah 1: Membuat data frame Produk
Data Frame Produk terdiri dari tiga atribut yaitu: produkKode, produkNama dan kategoriID. Di mana kategori ID merupakan FK yang menghubungkan ke data frame Kategori nanti.
df_produk<-data.frame(produkKode=c('P001','P002','P003','P004','P005'), produkNama=c('Nasi Goreng','Nasi Lawar','Es Daluman','Plecing Kangkung','Pepaya'), kategoriID=c(1,1,2,1,4)) df_produk
Jika dijalankan maka hasilnya
produkKode <chr> | produkNama <chr> | kategoriID <dbl> | ||
---|---|---|---|---|
P001 | Nasi Goreng | 1 | ||
P002 | Nasi Lawar | 1 | ||
P003 | Es Daluman | 2 | ||
P004 | Plecing Kangkung | 1 | ||
P005 | Pepaya | 4 |
Langkah 2: Membuat data frame Kategori
Data frame Kategori terdiri dari 2 atribut yaitu: kategoriID dan kategoriNama
df_kategori<-data.frame(kategoriID=c(1,2,3), kategoriNama=c("Makanan","Minuman","Snack")) df_kategori
Dan hasilnya akan menjadi seperti:
kategoriID <dbl> | kategoriNama <chr> | |||
---|---|---|---|---|
1 | Makanan | |||
2 | Minuman | |||
3 | Snack |
Langkah 3: Join dengan Merge
INNER JOIN
#INNER JOIN df_gabung<-merge(x = df_produk, y = df_kategori, by =("kategoriID")) df_gabung
Hasilnya menjadi:
kategoriID <dbl> | produkKode <chr> | produkNama <chr> | kategoriNama <chr> | |
---|---|---|---|---|
1 | P001 | Nasi Goreng | Makanan | |
1 | P002 | Nasi Lawar | Makanan | |
1 | P004 | Plecing Kangkung | Makanan | |
2 | P003 | Es Daluman | Minuman |
LEFT JOIN
#LEFT JOIN df_gabung<-merge(x = df_produk, y = df_kategori, by =("kategoriID"),all.x=TRUE) df_gabung
Hasilnya menjadi
kategoriID <dbl> | produkKode <chr> | produkNama <chr> | kategoriNama <chr> | |
---|---|---|---|---|
1 | P001 | Nasi Goreng | Makanan | |
1 | P002 | Nasi Lawar | Makanan | |
1 | P004 | Plecing Kangkung | Makanan | |
2 | P003 | Es Daluman | Minuman | |
4 | P005 | Pepaya | NA |
RIGHT JOIN
#RIGHT JOIN df_gabung<-merge(x = df_produk, y = df_kategori, by =("kategoriID"),all.y=TRUE) df_gabung
Jika dijalankan hasilnya menjadi:
kategoriID <dbl> | produkKode <chr> | produkNama <chr> | kategoriNama <chr> | |
---|---|---|---|---|
1 | P001 | Nasi Goreng | Makanan | |
1 | P002 | Nasi Lawar | Makanan | |
1 | P004 | Plecing Kangkung | Makanan | |
2 | P003 | Es Daluman | Minuman | |
3 | NA | NA | Snack |
LANGKAH 4: Join dengan library DPLYR
INNER JOIN
library(dplyr) df_gabung= df_produk %>% inner_join(df_kategori,by="kategoriID") df_gabung
LEFT JOIN
df_gabung= df_produk %>% left_join(df_kategori,by="kategoriID") df_gabung
RIGHT JOIN
df_gabung= df_produk %>% left_join(df_kategori,by="kategoriID") df_gabung
Jika dijalankan maka hasilnya akan sama dengan Join menggunakan Merge.
Demikian cara untuk melakukan join dalam Bahasa R. Anda bisa coba menerapkan pada kasus data frame yang dimiliki
Download Join Data Frame dengan R
Klik tombol Facebook / Twitter / Google + untuk Download
Komentar tentang Join Data Frame dalam R