Lompati ke konten utama
Modul 4 · Pelajaran 2 dari 28/10 dalam kursus~15 min
Pelajaran modul (2/2)

Mutasi dan Agregasi

Selain memilih dan memfilter, dplyr menawarkan kemampuan canggih untuk membuat kolom terhitung baru dan meringkas data dengan menggabungkannya ke dalam kelompok.


Membuat Kolom Baru: mutate()

Kata kerja mutate() memungkinkan Anda menghitung kolom baru atau memodifikasi kolom yang sudah ada, sekaligus menjaga semua kolom asli tetap utuh.

R
# Adds a 'double_salary' column computed as 'salary' multiplied by 2
df %>%
  mutate(double_salary = salary * 2)

# You can create multiple columns at once
df %>%
  mutate(
    total_cost = quantity * price,
    tax = total_cost * 0.22
  )

Pengelompokan dan Agregasi: group_by() dan summarise()

Seringkali, analisis data memerlukan penghitungan statistik ringkasan (misalnya rata-rata, jumlah, hitungan) untuk kelompok baris tertentu (misalnya, menghitung gaji rata-rata untuk setiap departemen).

1.group_by()

Mengelompokkan bingkai data berdasarkan nilai dari satu atau beberapa kolom. Dengan sendirinya, ini tidak mengubah tampilan visual data, namun memberi sinyal kepada dplyr bahwa operasi selanjutnya harus dijalankan "kelompok demi kelompok".

2. summarise() (atau summarize())

Meruntuhkan banyak baris menjadi satu baris ringkasan dengan menerapkan fungsi statistik seperti mean(), sum(), min(), max(), atau n() (yang menghitung baris).

R
# Calculates the average salary per department
df %>%
  group_by(department) %>%
  summarise(mean_salary = mean(salary))

Jika Anda ingin menghitung berapa banyak rekaman yang dimiliki setiap grup:

R
# Counts how many employees are in each city
df %>%
  group_by(city) %>%
  summarise(count = n())

Cobalah sendiri

Latihan 1: Buat kolom terhitung

Latihan#r.m4.l2.e1
Upaya: 0Memuat…

Dengan adanya bingkai data df, buat kolom baru bernama total_price dengan mengalikan kolom kuantitas dengan kolom harga menggunakan mutate(). Simpan hasilnya di df_new.

Memuat editor…
Tunjukkan petunjuk

Gunakan mutate(total_price = quantity * price) di dalam pipa di df.

Solusi tersedia setelah 3 upaya

Latihan 2: Kelompokkan dan rangkum dengan mean

Latihan#r.m4.l2.e2
Upaya: 0Memuat…

Hitung rata-rata kolom gaji, kelompokkan catatan berdasarkan kolom departemen. Simpan kolom gabungan dengan nama mean_salary dan tetapkan hasil akhirnya ke df_grouped.

Memuat editor…
Tunjukkan petunjuk

USA df %>% group_by(departemen) %>% ringkasan(rata-rata gaji = rata-rata(gaji))

Solusi tersedia setelah 3 upaya

Latihan 3: Hitung elemen per grup

Latihan#r.m4.l2.e3
Upaya: 0Memuat…

Hitung jumlah baris untuk setiap kota (kolom kota). Tetapkan hitungan ke variabel count di dalam summarise() menggunakan fungsi n(), dan simpan hasil akhirnya di df_counts.

Memuat editor…
Tunjukkan petunjuk

Gabungkan group_by(city) dengan ringkasan(count = n()) dalam satu saluran pipa.

Solusi tersedia setelah 3 upaya

Latihan 4: Beberapa ringkasan

Latihan#r.m4.l2.e4
Upaya: 0Memuat…

Hitung nilai minimum (min_price) dan nilai maksimum (max_price) dari kolom harga yang dikelompokkan berdasarkan kolom kategori. Simpan hasilnya di df_summary.

Memuat editor…
Tunjukkan petunjuk

Di dalam summarise(), pisahkan metrik min_price = min(price) dan max_price = max(price) dengan koma.

Solusi tersedia setelah 3 upaya

Latihan 5: Mengelompokkan dan menggabungkan filter

Latihan#r.m4.l2.e5
Upaya: 0Memuat…

Tulis alur yang mengelompokkan df berdasarkan kolom departemen, hitung rata-rata simpanan gaji di kolom baru avg_salary menggunakan mutate() (Catatan: gunakan mutate, bukan summarise, untuk menyimpan semua baris), dan terakhir filter untuk hanya menyimpan catatan dengan gaji yang lebih besar dari avg_salary. Simpan di res.

Memuat editor…
Tunjukkan petunjuk

Usa df %>% group_by(departemen) %>% mutate(avg_salary = mean(gaji)) %>% filter(gaji > avg_salary)

Solusi tersedia setelah 3 upaya