LoslegenKostenlos loslegen

Gruppen: großartig für Musik, großartig für Daten

Ein häufiges Analyseproblem ist, wie man zusammenfassende Statistiken für jede Daten­gruppe berechnet. Du möchtest zum Beispiel deine Umsätze nach Monat oder Region kennen. In R nennt man den Prozess, deine Daten in Gruppen aufzuteilen, auf jede Gruppe eine Kennzahl anzuwenden und die Ergebnisse in einer einzigen Datenstruktur zu kombinieren, „split-apply-combine“. Das Konzept ist jedoch viel älter: SQL hat die GROUP BY-Anweisung seit Jahrzehnten. Der Begriff „map-reduce“ ist ein ähnliches Konzept, wobei „map“ grob den Schritten „split“ und „apply“ entspricht und „reduce“ dem „combine“. Der dplyr/sparklyr-Ansatz ist, group_by() zu verwenden, bevor du mutate() oder summarize() anwendest. Die Funktion nimmt die unzitierten Namen der Spalten, nach denen gruppiert werden soll. Um zum Beispiel den Mittelwert der Spalte x für jede Kombination der Werte in den Spalten grp1 und grp2 zu berechnen, würdest du Folgendes schreiben.

a_tibble %>%
  group_by(grp1, grp2) %>%
  summarize(mean_x = mean(x))

Beachte, dass die an group_by() übergebenen Spalten typischerweise kategoriale Variablen sein sollten. Wenn du zum Beispiel das durchschnittliche Gewicht von Menschen in Abhängigkeit von ihrer Körpergröße berechnen möchtest, ergibt es wenig Sinn, nach der Körpergröße zu gruppieren, da jede Größe einzigartig ist. Du könntest jedoch cut() verwenden, um die Größen in Kategorien einzuteilen und dann das mittlere Gewicht pro Kategorie zu berechnen.

Diese Übung ist Teil des Kurses

Einführung in Spark mit sparklyr in R

Kurs anzeigen

Anleitung zur Übung

Es wurde bereits eine Spark-Verbindung als spark_conn erstellt. Ein Tibble, das an die in Spark gespeicherten Track-Metadaten angebunden ist, wurde als track_metadata_tbl vordefiniert.

  • Gruppiere den Inhalt von track_metadata nach artist_name und:
    • Fasse den gruppenweisen Mittelwert von duration als neue Spalte mean_duration zusammen.
    • Weise die Ergebnisse duration_by_artist zu.
  • Finde die Künstler mit den kürzesten Songs, indem du die Zeilen in aufsteigender Reihenfolge von mean_duration anordnest.
  • Finde analog die mit den längsten Songs, indem du in absteigender Reihenfolge von mean_duration anordnest.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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
  ___
Code bearbeiten und ausführen