Gruplar: müzik için harika, veri için harika
Yaygın bir analiz sorusu, her veri grubuna ait özet istatistikleri nasıl hesaplayacağıdır. Örneğin, satış gelirlerini aya veya bölgeye göre bilmek isteyebilirsin. R'de, veriyi gruplara ayırma, her gruba bir özet istatistik uygulama ve sonuçları tek bir veri yapısında birleştirme süreci "split-apply-combine" olarak bilinir. Kavram aslında çok daha eskidir: SQL onlarca yıldır GROUP BY ifadesine sahiptir. "Map-reduce" terimi de benzer bir kavramdır; burada "map" kabaca "böl" ve "uygula" adımlarına, "reduce" ise "birleştirme"ye karşılık gelir. dplyr/sparklyr yaklaşımı, mutate() veya summarize() etmeden önce group_by() kullanmaktır. Gruplamak istediğin sütunların tırnaksız adlarını alır. Örneğin, grp1 ve grp2 sütunlarındaki değerlerin her kombinasyonu için x sütununun ortalamasını hesaplamak istersen aşağıdaki gibi yazarsın.
a_tibble %>%
group_by(grp1, grp2) %>%
summarize(mean_x = mean(x))
group_by() içine verilen sütunların genellikle kategorik değişkenler olması gerektiğini unutma. Örneğin, insanların boylarına göre ortalama ağırlıklarını hesaplamak istiyorsan, herkesin boyu benzersiz olduğu için boya göre gruplamak mantıklı değildir. Ancak, boyları farklı kategorilere dönüştürmek için cut() kullanabilir ve her kategori için ortalama ağırlığı hesaplayabilirsin.
Bu egzersiz, kursun bir parçasıdır
R ile sparklyr kullanarak Spark’a Giriş
Egzersiz talimatları
Senin için spark_conn olarak bir Spark bağlantısı oluşturuldu. Spark'ta saklanan parça metaverisine bağlı bir tibble, track_metadata_tbl olarak önceden tanımlandı.
track_metadataiçeriğiniartist_namee göre grupla, ardından:durationın grup bazındaki ortalamasını yeni bir sütunmean_durationolarak özetle.- Sonuçları
duration_by_artista ata.
- Satırları
mean_durationa göre artan sırada düzenleyerek en kısa şarkılara sahip sanatçıları bul. - Benzer şekilde,
mean_durationa göre azalan sırada düzenleyerek en uzun şarkılara sahip olanları bul.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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
___