Join Data Frame dalam R

29 January 2022 | Tags: , , ,


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.

Relasi Produk dan 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>
P001Nasi Goreng1
P002Nasi Lawar1
P003Es Daluman2
P004Plecing Kangkung1
P005Pepaya4

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>
1Makanan
2Minuman
3Snack

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>
1P001Nasi GorengMakanan
1P002Nasi LawarMakanan
1P004Plecing KangkungMakanan
2P003Es DalumanMinuman

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>
1P001Nasi GorengMakanan
1P002Nasi LawarMakanan
1P004Plecing KangkungMakanan
2P003Es DalumanMinuman
4P005PepayaNA

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>
1P001Nasi GorengMakanan
1P002Nasi LawarMakanan
1P004Plecing KangkungMakanan
2P003Es DalumanMinuman
3NANASnack

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 via Facebook tentang Join Data Frame dalam R

Komentar tentang Join Data Frame dalam R

Silahkan tulis saran, komentar dan pertanyaan dibawah!

Your email address will not be published. Required fields are marked *