Relational Data
Pengertian
Pada proses analisis data biasanya kita memiliki banyak tabel data untuk di proses sesuai dengan tujuan kita, dan harus digabungkan dengan dua, tiga data maupun lebih. Secara umum beberapa tabel data yang tergabung pada suatu kesatuan disebut sebagai data relasional karena relasinya.
Relasi selalu ditentukan dengan sepasang tabel maupun dua tabel, terkadang dua elemen pasangan bisa menjadi tabel yang sama. misalnya jika kita memiliki suatu data yang terdiri dari beberapa tabel, dan setiap tabel memiliki refesensinya sendiri.
Kelompok yang bekerja dengan data relasional
Untuk berkerja dengan data relasional ini ada 3 kelompok yang bekerja dengan pasangan tabel. Diantaranya:
Mutasi Gabungan, yang menambah Variabel baru ke satu bingkai data dari pengamatan yang cocok di yang lain.
Gabungan pemfilteran, yang memfilter pengamatan dari satu bingkai data berdasarkan apakah mereka cocok atau tidak dengan pengamatan di tabel lain.
Operasi set, yang memperlakukan observasi seolah-olah itu adalah elemen yang ditetapkan.
Cara Menggunakan Relational Data Set
Cara Pertama
Hal pertama yang kita lakukan yaitu mengaktifkan library tidyverse dengan cara menginstall package install.packages(“tidyverse”)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.2
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.6 v dplyr 1.0.8
## v tidyr 1.2.0 v stringr 1.4.0
## v readr 2.1.2 v forcats 0.5.1
## Warning: package 'ggplot2' was built under R version 4.1.2
## Warning: package 'tibble' was built under R version 4.1.2
## Warning: package 'tidyr' was built under R version 4.1.2
## Warning: package 'readr' was built under R version 4.1.2
## Warning: package 'purrr' was built under R version 4.1.2
## Warning: package 'dplyr' was built under R version 4.1.2
## Warning: package 'forcats' was built under R version 4.1.2
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
Cara Kedua
Cara kedua membuat data set dengan menggunakan data.frame() yang digunakan untuk membuat tabel data.
data_desa <-data.frame(Desa = c('Sumberjo', 'Durian Runtuh', 'Rambutan', 'Sumberasri', 'Sumberdiren', 'Garum', 'Talun', 'Wlingli'),
Penduduk = c(200, 530, 190, 400, 324, 420, 234, 405),
stringsAsFactors = FALSE)
data_rumah <-data.frame(Desa = c('Sumberjo', 'Durian Runtuh', 'Rambutan', 'Sumberasri', 'Sumbermaron', 'Garum', 'Talun', 'Wlingli'),
"Jumlah Rumah" = c (100, 255, 100, 322, 194, 312, 170, 422),
stringsAsFactors = FALSE)
Cara Ketiga
Setelah menulis data yang akan dijadikan tabel selajutnya kita menampilkan data tersebut :
data_desa
## Desa Penduduk
## 1 Sumberjo 200
## 2 Durian Runtuh 530
## 3 Rambutan 190
## 4 Sumberasri 400
## 5 Sumberdiren 324
## 6 Garum 420
## 7 Talun 234
## 8 Wlingli 405
data_rumah
## Desa Jumlah.Rumah
## 1 Sumberjo 100
## 2 Durian Runtuh 255
## 3 Rambutan 100
## 4 Sumberasri 322
## 5 Sumbermaron 194
## 6 Garum 312
## 7 Talun 170
## 8 Wlingli 422
Cara menggabungkan data set
Jika sudah bisa menjadikan data tersebut menjadi tabel langkah selanjutnya kita menghubungkan atau menggabungkan kedua tabel data set tersebut, sebagai acuan untuk mencocokkan adalah pada variabel “key”. Dalam contoh ini, kita akan mencocokan antara variabel “key” pada tabel x, dengan variabel “key” pada tabel y, kedua tabel tersebut digeneralisasi secara langsung ke beberapa key dan ke beberapa value.
Disi kita bisa menekankan bahwa penggabungan adalah mencocokan kedua tabel berdasarkan variabel “key” ; kemudian nilainya akan dibawa ke salah satu tabel.) Dalam gabungan yang sebenarnya, kecocokan akan ditunjukkan dengan titik. Jumlah titik = jumlah pencocokan = jumlah baris yang akan dibawah ke salah satu tabel.
Cara Keempat
Ada beberapa cara untuk menggabungkan.
Dengan cara Inner Join
Jenis gabungan yang paling sederhana adalah Inner join. Inner join adalah proses penggabungan dua tabel, dimana dalam mencocokkan nya menggunakan dengan variabel “key” yang sama pada kedua tabel. (Tepatnya, ini adalah inner equijoin karena kuncinya adalah mencocokkan kedua tabel menggunakan operator persamaan. Karena kebanyakan gabungan yang ada adalah equijoin.)
data_desa %>%
inner_join(data_rumah, by = "Desa")
## Desa Penduduk Jumlah.Rumah
## 1 Sumberjo 200 100
## 2 Durian Runtuh 530 255
## 3 Rambutan 190 100
## 4 Sumberasri 400 322
## 5 Garum 420 312
## 6 Talun 234 170
## 7 Wlingli 405 422
Outer Join
Outer join akan menyimpan data yang berbeda dengan inner join , dimana data yang sesuai dan muncul di salah satu tabel. Terdapa tiga macam Outer joins:
A left joint adalah menyimpan semua pengamatan di data_Lembaga.
A right joint adalah menyimpan semua pengamatan di data_Program_Studi.
A full joint adalah menjaga semua pengamatan di data_Lembaga dan data_Program_Studi.
Proses joint ini bekerja dengan menambahkan variabel “value” menjadi data “virtual” pada salah satu tabel. Hasil nya dapat memiliki key yang selalu cocok (jika tidak ada kunci lain yang cocok), dan value diisi dengan NA.
Cara Kelima
Selanjutnya kita menggabungkan dua tabel dengan jenis Outer Joins yang kita telah buat.
data_desa <-data.frame(Desa = c('Sumberjo', 'Durian Runtuh', 'Rambutan', 'Sumberasri', 'Sumberdiren', 'Garum', 'Talun', 'Wlingli'),
Penduduk = c(200, 530, 190, 400, 324, 420, 234, 405),
stringsAsFactors = FALSE)
data_rumah <-data.frame(Desa = c('Sumberjo', 'Durian Runtuh', 'Rambutan', 'Sumberasri', 'Sumbermaron', 'Garum', 'Talun', 'Wlingli'),
"Jumlah Rumah" = c (100, 255, 100, 322, 194, 312, 170, 422),
stringsAsFactors = FALSE)
Cara Keenam
Menggabungkan dua tabel dengan cara left join
left_join(data_desa,data_rumah)
## Joining, by = "Desa"
## Desa Penduduk Jumlah.Rumah
## 1 Sumberjo 200 100
## 2 Durian Runtuh 530 255
## 3 Rambutan 190 100
## 4 Sumberasri 400 322
## 5 Sumberdiren 324 NA
## 6 Garum 420 312
## 7 Talun 234 170
## 8 Wlingli 405 422
Cara Ketujuh
Menggabungkan kedua data dengan cara right joins
right_join(data_desa,data_rumah)
## Joining, by = "Desa"
## Desa Penduduk Jumlah.Rumah
## 1 Sumberjo 200 100
## 2 Durian Runtuh 530 255
## 3 Rambutan 190 100
## 4 Sumberasri 400 322
## 5 Garum 420 312
## 6 Talun 234 170
## 7 Wlingli 405 422
## 8 Sumbermaron NA 194
Cara Kedelapan
Cara ini cara terakhir untuk menggabungkan dua tabel dengan gabungan full joins yang mencangkup semuanya.
full_join(data_desa,data_rumah)
## Joining, by = "Desa"
## Desa Penduduk Jumlah.Rumah
## 1 Sumberjo 200 100
## 2 Durian Runtuh 530 255
## 3 Rambutan 190 100
## 4 Sumberasri 400 322
## 5 Sumberdiren 324 NA
## 6 Garum 420 312
## 7 Talun 234 170
## 8 Wlingli 405 422
## 9 Sumbermaron NA 194
Operasi joint yang paling umum digunakan adalah left joint : Kita menggunakan proses left joint setiap kali kita mencari data tambahan dari tabel lain, karena observasi asli tetap dipertahankan meskipun tidak ada kecocokan. left joint harus menjadi proses joint secara default : proses ini left joint kita pertahankan untuk digunakan, kecuali kita memiliki alasan kuat untuk memilih salah satu proses outer joint yang lain. Cara lain untuk menggambarkan berbagai jenis operasi outher joint adalah dengan diagram Venn:
gambar diagram outer joins
Referensi
https://rpubs.com/suhartono-uinmaliki/relational
https://rstudio-pubs-static.s3.amazonaws.com/707537_df470034b9e543ab992c6996d94398ae.html