Grup: bagus untuk musik, bagus untuk data
Masalah analisis yang umum adalah cara menghitung statistik ringkas untuk setiap kelompok data. Misalnya, Anda mungkin ingin mengetahui pendapatan penjualan per bulan atau per wilayah. Di R, proses memecah data ke dalam kelompok, menerapkan statistik ringkas pada setiap kelompok, lalu menggabungkan hasilnya menjadi satu struktur data, dikenal sebagai "split-apply-combine". Namun konsep ini jauh lebih lama: SQL telah memiliki pernyataan GROUP BY selama beberapa dekade. Istilah "map-reduce" memiliki konsep yang serupa, di mana "map" kurang lebih analog dengan langkah "split" dan "apply", sedangkan "reduce" berarti "combine". Pendekatan dplyr/sparklyr adalah menggunakan group_by() sebelum Anda melakukan mutate() atau summarize(). Fungsi ini menerima nama kolom tanpa tanda kutip untuk dijadikan dasar pengelompokan. Misalnya, untuk menghitung nilai rata-rata kolom x untuk setiap kombinasi nilai pada kolom grp1 dan grp2, Anda akan menuliskan kode berikut.
a_tibble %>%
group_by(grp1, grp2) %>%
summarize(mean_x = mean(x))
Perhatikan bahwa kolom yang diberikan ke group_by() umumnya sebaiknya berupa variabel kategorikal. Sebagai contoh, jika Anda ingin menghitung berat rata-rata orang relatif terhadap tinggi badan, tidak masuk akal untuk mengelompokkan berdasarkan tinggi karena tinggi tiap orang unik. Namun, Anda dapat menggunakan cut() untuk mengonversi tinggi badan ke dalam beberapa kategori, lalu menghitung berat rata-rata untuk setiap kategori.
Latihan ini merupakan bagian dari kursus
Pengantar Spark dengan sparklyr di R
Instruksi latihan
Koneksi Spark telah dibuat untuk Anda sebagai spark_conn. Sebuah tibble yang terhubung ke metadata trek yang disimpan di Spark telah didefinisikan sebelumnya sebagai track_metadata_tbl.
- Kelompokkan isi
track_metadataberdasarkanartist_name, lalu:- Ringkas rata-rata
durationper grup sebagai kolom baru,mean_duration. - Simpan hasilnya ke
duration_by_artist.
- Ringkas rata-rata
- Temukan artis dengan lagu terpendek dengan mengurutkan baris berdasarkan
mean_durationsecara menaik. - Demikian pula, temukan artis dengan lagu terpanjang dengan mengurutkan secara menurun berdasarkan
mean_duration.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
duration_by_artist <- track_metadata_tbl %>%
# Group by artist
___ %>%
# Calc mean duration
___
duration_by_artist %>%
# Sort by ascending mean duration
___
duration_by_artist %>%
# Sort by descending mean duration
___