Format Panjang ke Lebar
Pelajaran 10 dari 14 dalam kursus Manipulasi Data dengan R di Coddy.
Mengubah data dari format panjang ke format lebar adalah keterampilan penting dalam manipulasi data, terutama berguna untuk membuat representasi data yang lebih ringkas. Dalam pelajaran ini, kita akan berfokus menggunakan fungsi pivot_wider() dari package tidyr untuk mengubah data dari format panjang ke format lebar.
1. Memahami Format Panjang dan Lebar
Format panjang: Variabel disimpan dalam pasangan kunci-nilai, dengan satu kolom untuk nama variabel dan kolom lain untuk nilainya.
Format lebar: Setiap variabel memiliki kolomnya sendiri.
2. Fungsi pivot_wider()
Fungsi pivot_wider() dari tidyr digunakan untuk mengubah data dari format panjang ke format lebar. Berikut sintaks dasarnya:
pivot_wider(data, names_from = "key", values_from = "value")3. Contoh: Menggunakan pivot_wider()
Mari lihat contohnya:
# Muat library yang diperlukan
library(tidyr)
# Buat contoh kumpulan data berformat panjang
long_data <- data.frame(
name = c("Alice", "Alice", "Alice", "Bob", "Bob", "Bob"),
subject = c("math", "science", "history", "math", "science", "history"),
score = c(85, 92, 78, 76, 88, 82)
)
# Ubah ke format lebar
wide_data <- pivot_wider(long_data,
names_from = "subject",
values_from = "score")
print(wide_data)
4. Memahami Argumen
names_from: Menentukan kolom yang berisi nama untuk kolom baru dalam format lebar.values_from: Menentukan kolom yang berisi nilai untuk kolom baru.
5. Menangani Beberapa Kolom Nilai
Kamu dapat melakukan pivot pada beberapa kolom nilai sekaligus:
long_data_multi <- data.frame(
name = c("Alice", "Alice", "Bob", "Bob"),
year = c(2022, 2023, 2022, 2023),
score = c(85, 90, 76, 82),
rank = c(2, 1, 3, 2)
)
wide_data_multi <- pivot_wider(long_data_multi,
names_from = year,
values_from = c(score, rank))
print(wide_data_multi)
Dengan menguasai fungsi pivot_wider(), kamu akan dapat mengubah bentuk datamu secara efisien dari format panjang ke format lebar, sehingga menghasilkan representasi yang lebih ringkas untuk kebutuhan analisis tertentu di R.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Tantangan
MudahBuat fungsi yang mengubah dataset nilai siswa dalam format panjang menjadi format lebar menggunakan fungsi pivot_wider() dari package tidyr. Fungsi tersebut harus melakukan operasi berikut:
- Ubah string input menjadi data frame
- Gunakan
pivot_wider()untuk mengubah data dari format panjang menjadi format lebar - Urutkan data frame yang dihasilkan berdasarkan nama siswa (gunakan
%>% arrange(student)) - Cetak data frame dalam format lebar
Coba sendiri
# Baca input
con <- file("stdin", "r")
input_string <- suppressWarnings(readLines(con))
# Ubah string input menjadi data frame
df <- read.csv(text = input_string, stringsAsFactors = FALSE)
# Muat library yang diperlukan
suppressPackageStartupMessages(library(tidyr))
suppressPackageStartupMessages(library(dplyr))
# TODO: Tulis kodemu di bawah untuk mengubah data frame
# Petunjuk: Gunakan fungsi pivot_wider() untuk mengubah format long menjadi wide
# Jangan lupa urutkan data frame hasilnya berdasarkan nama siswa
# Cetak hasilnya
# print(result)Semua pelajaran di Manipulasi Data dengan R
Latihan sendiri: Compiler R online