Menu
CoddyTech

Mengagregasi Data dengan dplyr

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

Mengagregasi data merupakan langkah penting dalam analisis data, karena memungkinkan kamu meringkas dan mendapatkan wawasan dari dataset-mu. Package dplyr di R menyediakan fungsi-fungsi yang andal untuk agregasi data, terutama group_by() dan summarize(). Mari kita pelajari cara menggunakan fungsi-fungsi ini secara efektif.

Fungsi group_by()

Fungsi group_by() memungkinkan kamu mengelompokkan data berdasarkan satu atau beberapa variabel. Ini biasanya merupakan langkah pertama dalam agregasi data.

# Contoh data frame
df <- data.frame(
  category = c("A", "B", "A", "B", "A"),
  value = c(10, 15, 20, 25, 30)
)

# Kelompokkan data berdasarkan category
grouped_df <- group_by(df, category)
print(grouped_df)

Output:

# Sebuah tibble: 5 × 2
# Kelompok:   category [2]
  category value
  <chr>    <dbl>
1 A           10
2 B           15
3 A           20
4 B           25
5 A           30

Fungsi summarize()

Setelah mengelompokkan data, gunakan summarize() untuk menghitung statistik ringkasan bagi setiap kelompok.

# Hitung nilai rata-rata untuk setiap kategori
result <- summarize(grouped_df, mean_value = mean(value))
print(result)

Output:

# A tibble: 2 × 2
  category mean_value
  <chr>        <dbl>
1 A             20
2 B             20

Menggabungkan group_by() dan summarize()

Kamu dapat merangkai fungsi-fungsi ini menggunakan operator pipe %>% agar kodemu lebih mudah dibaca:

result <- df %>%
  group_by(category) %>%
  summarize(mean_value = mean(value),
            sum_value = sum(value),
            count = n())
print(result)

Output:

# A tibble: 2 × 4
  category mean_value sum_value count
  <chr>        <dbl>     <dbl> <int>
1 A              20        60     3
2 B              20        40     2

Beberapa Statistik Ringkasan

Kamu dapat menghitung beberapa statistik dalam satu pemanggilan summarize():

result <- df %>%
  group_by(category) %>%
  summarize(
    mean_value = mean(value),
    min_value = min(value),
    max_value = max(value),
    count = n()
  )
print(result)

Output:

# A tibble: 2 × 5
  category mean_value min_value max_value count
  <chr>         <dbl>     <dbl>     <dbl> <int>
1 A              20         10        30     3
2 B              20         15        25     2
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

Sedang

Buat fungsi untuk memproses data penjualan menggunakan fungsi dplyr. Fungsi tersebut harus melakukan operasi berikut:

  1. Kelompokkan data berdasarkan kategori produk
  2. Hitung statistik ringkasan berikut untuk setiap kelompok:
    • Total penjualan
    • Harga rata-rata
    • Jumlah item yang terjual
  3. Urutkan hasil berdasarkan total penjualan dari urutan terbesar ke terkecil
  4. Kembalikan data frame yang telah diproses

Cetak data frame yang dihasilkan.

Coba sendiri

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


# Ubah string input menjadi data frame
suppressPackageStartupMessages(library(dplyr))
suppressPackageStartupMessages(library(readr))

sales_data <- read.csv(paste(input_data, collapse = "\n"))

# TODO: Tulis kodemu di bawah untuk mengolah data penjualan
# Petunjuk: Gunakan fungsi dplyr seperti group_by(), summarize(), arrange(), desc()

process_sales_data <- function(data) {
  # Tulis kodemu di sini
  
  # Kembalikan data frame yang sudah diolah
  return(data)
}

# Olah data penjualan
result <- process_sales_data(sales_data)

# Cetak hasilnya
print(result)

Semua pelajaran di Manipulasi Data dengan R

Latihan sendiri: Compiler R online