Lewati ke konten utama

Menggabungkan Dataset di R

Di tutorial ini, Anda akan belajar menggabungkan beberapa dataset di R.
Diperbarui 28 Sep 2026  · 8 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Dalam praktiknya, data disimpan di server yang berbeda dan ada di banyak file berbeda. Ketika data yang Anda perlukan berasal dari berbagai sumber, penting untuk mengetahui cara menggabungkannya agar Anda kehilangan sesedikit mungkin informasi dan membuat pasangan yang benar-benar masuk akal sesuai dengan struktur data Anda.

Tutorial ini akan memandu Anda melalui:

  • Menggabungkan dataset secara horizontal dan vertikal
  • Apa itu kunci primer dan bagaimana kunci tersebut menambah struktur pada data Anda
  • Berbagai jenis join (misalnya, left-join, inner-join, full-join) dan cara memilih di antaranya
  • Satu masalah umum yang perlu diwaspadai dan cara menyelesaikannya

Menggabungkan Dataset

Secara garis besar, ada dua cara Anda dapat menggabungkan dataset; Anda dapat menambahkan informasi dengan menambah baris atau dengan menambah kolom ke dataset Anda. Secara umum, ketika Anda memiliki dataset yang memiliki himpunan kolom yang sama atau memiliki himpunan observasi yang sama, Anda dapat menggabungkannya secara vertikal atau horizontal, masing-masing. Mari belajar melalui beberapa contoh.

Menambahkan dataset secara vertikal

Ketika Anda memiliki beberapa dataset dengan himpunan kolom yang sama, Anda dapat menggabungkan satu dataset dengan dataset lain secara vertikal. Artinya, dengan mempertahankan kolom pada dataset Anda, Anda dapat menambahkan lebih banyak baris ke dalamnya. Menyatukan informasi seperti itu dalam satu file akan memudahkan Anda untuk melakukan agregasi dan melihat gambaran besarnya tanpa repot bolak-balik di antara banyak file dan kehilangan jejak.

Dataset 1

Make Num models
Honda 63
BMW 10

Dataset 2

Make Num models
Ford 26
Tesla 4

Penting untuk dicatat bahwa jika Anda memiliki observasi yang sama di beberapa dataset dan Anda menggabungkannya secara vertikal menggunakan rbind(), Anda akan berakhir dengan observasi duplikat di tabel Anda. Dan meskipun kedua dataset harus memiliki himpunan variabel yang sama (yaitu kolom), urutannya tidak harus sama. Lihat sendiri di konsol di bawah ini!

Di ruang kerja Anda, ada dua dataset bernama dataset1 dan dataset2 seperti yang Anda lihat di atas. Cobalah mengubah urutan kolom dataset1. Panggil rbind() pada dataset1 dan dataset2 serta reordered_dataset1 dan dataset2.

dataset1 <- data.frame(make = c("Honda", "BMW"), num_models = c(63, 10)) dataset2 <- data.frame(make = c("Ford", "Tesla"), num_models = c(26, 4)) # Add datasets vertically rbind(dataset1, dataset2) # Reorder columns reordered_dataset1 <- dataset1[, c(2, 1)] # See that rbind() is robust to column ordering rbind(reordered_dataset1, dataset2)

Setelah rbind(), hasil Anda seharusnya memuat informasi tentang keempat merek mobil dalam satu tabel seperti ini:

Dataset yang digabung secara vertikal

Make Num models
Honda 63
BMW 10
Ford 26
Tesla 4

Mulai Belajar R Secara Gratis

Pengantar R

BasicSkill Level
4 jam
3.1M learners
Kuasai dasar analisis data di R, termasuk vectors, lists, dan data frames, lalu praktikkan R dengan data sets nyata.
See DetailsRight Arrow
Start Course

Menambahkan dataset secara horizontal

Ketika Anda memiliki dataset yang mewakili himpunan observasi yang sama, Anda dapat menggabungkan dataset tersebut secara horizontal. Kali ini, dengan mempertahankan baris dari dataset Anda, Anda dapat menambahkan lebih banyak kolom ke dalamnya. Dalam kasus seperti ini, Anda harus memeriksa bahwa urutan observasinya sama. Jika dataset Anda memiliki jumlah baris yang berbeda, atau jumlah barisnya sama tetapi urutan barisnya tidak konsisten, Anda dapat memasangkan satu himpunan kolom dengan himpunan lainnya dengan cara yang tidak masuk akal.

Mari kita lanjutkan contoh di atas. Misalkan Anda memiliki dua file data, satu berisi merek mobil dan jumlah model unik yang ditawarkan, dan satu lagi berisi merek mobil dan total penjualan:

Jumlah model unik yang ditawarkan

Make Num models
Honda 63
BMW 10
Ford 26
Tesla 4

Total penjualan

Make Sales
Ford 119157
BMW 25908
Honda 188328
Tesla 29975

Penting untuk dicatat bahwa jika Anda memiliki observasi yang sama di beberapa dataset dan Anda menggabungkannya secara horizontal menggunakan cbind(), Anda akan berakhir dengan kolom yang redundan di tabel Anda. Dan meskipun kedua dataset memuat informasi yang terkait, urutan baris sangat berpengaruh!

Pada konsol di bawah, panggil cbind() pada models dan sales lalu cetak hasilnya:

models <- data.frame(make = c("Honda", "BMW", "Ford", "Tesla"), num_models = c(63, 10, 26, 4)) sales <- data.frame(make = c("Ford", "BMW", "Honda", "Tesla"), sales = c(119157, 25908, 188328, 29975)) # Add datasets horizontally cbind(models, sales)

Anda seharusnya mendapatkan sesuatu seperti ini:

Model & Penjualan

Make Num models Make Sales
Honda 63 Ford 119157
BMW 10 BMW 25908
Ford 26 Honda 188328
Tesla 4 Tesla 29975

Apakah Anda melihat masalahnya? Data ini tidak rapi!

Menurut prinsip data rapi yang diajarkan dalam kursus dasar ini, setiap observasi dalam sebuah dataset harus diwakili dalam satu baris yang unik. Lalu bagaimana jika Anda hanya memiliki informasi pada sebagian baris di salah satu dataset dan ingin menambahkan informasi hanya untuk baris-baris yang memiliki informasi tambahan? Dengan kata lain, bagaimana jika Anda ingin menambahkan lebih banyak kolom dari satu dataset ke dataset lain, tetapi kedua dataset ini tidak memiliki jumlah observasi yang sama?

Kunci Primer dan Kunci Asing

Langkah pertama saat ingin menggabungkan dataset adalah mencari kunci primer dari dataset Anda. Kunci primer adalah kolom atau himpunan kolom yang secara unik mengidentifikasi setiap observasi dalam dataset Anda. Pada contoh merek mobil, jumlah model unik yang ditawarkan, dan total penjualan, kunci primer dari dataset Anda adalah kolom make.

Sekarang, kita dapat melakukan join, cara standar untuk menggabungkan dataset ke dalam satu tabel.

Jenis-jenis Join

Ada banyak jenis join. Anda dapat mempelajari cara menambah kolom dari satu dataset dengan kolom dari dataset lain dengan mutating join, cara memfilter satu dataset terhadap dataset lain dengan filtering join, dan cara menyaring dataset dengan operasi himpunan di kursus Joining Data in R with dplyr. Di bawah ini adalah beberapa yang paling umum.

left_join(x, y): mengembalikan semua baris dari x, dan semua kolom dari x dan y. Baris di x yang tidak memiliki pasangan di y akan berisi nilai NA pada kolom baru. Jika ada beberapa pasangan yang cocok antara x dan y, semua kombinasi pasangan tersebut akan dikembalikan.

inner_join(x, y): mengembalikan semua baris dari x yang memiliki nilai yang cocok di y, dan semua kolom dari x dan y. Jika ada beberapa pasangan yang cocok antara x dan y, semua kombinasi pasangan tersebut akan dikembalikan.

full_join(x, y): mengembalikan semua baris dan semua kolom dari x dan y. Jika tidak ada nilai yang cocok, fungsi akan mengembalikan NA untuk yang hilang.

Join yang disebutkan di atas adalah contoh mutating join karena menggabungkan variabel dari dua dataset.

Kunci yang Hilang

Misalkan Anda memiliki dua dataset. Dataset pertama bernama size dan memuat nama orang serta ukuran kaus mereka:

 > size
name size
1  Tom    M
2  Dan   XL
3 Keil    S

Dataset kedua bernama color dan memuat nama keluarga orang tersebut, preferensi warna kaus, serta menyimpan sebagian informasi di atribut row.names:

 > color
     surname color
Tom     Jeon  <NA>
Dan    Smith  Dark
Bob McLadden Light

Perhatikan apa yang bisa salah di sini? Join dua tabel bisa menjadi rumit ketika ada kunci yang hilang atau kunci duplikat. Pada contoh ini, data frame R menyimpan informasi penting di atribut row.names. Dalam kasus seperti ini, Anda tidak akan dapat mengakses kunci dengan fungsi join, karena fungsi join hanya dapat mengakses kolom dari data frame.

Cara mudah untuk memperbaiki masalah ini adalah menggunakan fungsi rownames_to_column() dari paket tibble. Fungsi ini mengembalikan salinan dataset Anda dengan nama baris ditambahkan ke data sebagai sebuah kolom. Argumen pertama untuk rownames_to_column() adalah objek data frame Anda dan argumen kedua adalah string yang menentukan nama kolom yang ingin Anda tambahkan.

Cobalah bereksplorasi di konsol di bawah. Dataset size dan color sudah dimuat sebelumnya di ruang kerja Anda.

color <- data.frame(surname = c("Jeon", "Smith", "McLadden"), color = c(NA, "Dark", "Light")) row.names(color) <- c("Tom", "Dan", "Bob") size <- data.frame(name = c("Tom", "Dan", "Keil"), size = c("M", "XL", "S")) # Explore here!

Penutup

Di dunia nyata, data bisa tersebar di banyak dataset dan berbagai format. Karena R dirancang untuk bekerja dengan tabel data tunggal, memanipulasi dan menggabungkan dataset menjadi satu tabel adalah keterampilan yang penting. Selesaikan jalur keahlian Importing & Cleaning Data with R dan pelajari cara mengurai serta menggabungkan data dalam format apa pun. Lihat juga tutorial R Data Import dari DataCamp. Selamat belajar!

Topik
R
Data Science
Analisis Data

Pelajari lebih lanjut tentang R

Kursus

Pengantar R

4 jam
3.1M
Kuasai dasar analisis data di R, termasuk vectors, lists, dan data frames, lalu praktikkan R dengan data sets nyata.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya