Menu
CoddyTech

Format Lebar ke Panjang

Pelajaran 9 dari 14 dalam kursus Manipulasi Data dengan R di Coddy.

Dalam pelajaran ini, kita akan berfokus menggunakan fungsi pivot_longer() dari paket tidyr untuk mengubah data dari format lebar menjadi format panjang.

Memahami Format Lebar dan Panjang

Format lebar: Setiap variabel memiliki kolomnya sendiri.
Format panjang: Variabel disimpan dalam pasangan kunci-nilai, dengan satu kolom untuk nama variabel dan kolom lainnya untuk nilainya.

Fungsi pivot_longer()

Fungsi pivot_longer() dari tidyr digunakan untuk mengubah data dari format lebar menjadi format panjang. Berikut sintaks dasarnya:

pivot_longer(data, cols, names_to = "key", values_to = "value")

Contoh:

# Muat library yang diperlukan
library(tidyr)

# Buat contoh dataset berformat lebar
wide_data <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  math = c(85, 76, 90),
  science = c(92, 88, 75),
  history = c(78, 82, 85)
)

# Ubah ke format panjang
long_data <- pivot_longer(wide_data, 
                          cols = c(math, science, history),
                          names_to = "subject",
                          values_to = "score")

print(long_data)

Output:

# Sebuah tibble: 9 × 3
  name    subject score
  <chr>   <chr>   <dbl>
1 Alice   math       85
2 Alice   science    92
3 Alice   history    78
4 Bob     math       76
5 Bob     science    88
6 Bob     history    82
7 Charlie math       90
8 Charlie science    75
9 Charlie history    85

Alih-alih memiliki 4 kolom: name, math, science, dan history, kita memiliki 3 kolom: name, subject, score

Memahami Argumen

  • cols: Menentukan kolom mana yang akan diubah ke format panjang.
  • names_to: Menamai kolom baru yang akan berisi nama kolom dari format lebar.
  • values_to: Menamai kolom baru yang akan berisi nilai.

Pentingnya dalam Analisis Data

Data dalam format panjang sering lebih disukai karena:

  • Lebih mudah diolah dan dianalisis dengan alat seperti dplyr
  • Lebih cocok untuk pemodelan statistik dan visualisasi
  • Sesuai dengan prinsip data rapi
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

challenge icon

Tantangan

Mudah

Buat fungsi yang mengubah dataset nilai ujian siswa dari format lebar menjadi format panjang menggunakan fungsi pivot_longer() dari package tidyr. Fungsi tersebut harus melakukan operasi berikut:

  1. Ubah string input menjadi data frame
  2. Gunakan pivot_longer() untuk mengubah data dari format lebar menjadi format panjang
  3. Ganti nama kolom yang dihasilkan menjadi "subject" dan "score"
  4. Urutkan data berdasarkan nama siswa, lalu berdasarkan mata pelajaran
  5. Cetak data frame format panjang yang dihasilkan

Coba sendiri

# Baca input
con <- file("stdin", "r")
input_string <- suppressWarnings(readLines(con))

# Ubah string input menjadi data frame
data <- read.csv(text = input_string, stringsAsFactors = FALSE)

# Muat package yang diperlukan
suppressPackageStartupMessages(library(tidyr))
suppressPackageStartupMessages(library(dplyr))

# TODO: Tulis kodemu di bawah ini untuk mengubah data
# Gunakan pivot_longer() untuk mengubah format lebar menjadi format panjang
# Ubah nama kolom menjadi "subject" dan "score"
# Urutkan data berdasarkan nama siswa, lalu berdasarkan mata pelajaran


# Cetak data frame berformat panjang yang dihasilkan
print(result)

Semua pelajaran di Manipulasi Data dengan R

Latihan sendiri: Compiler R online