Začněte nyníZačněte zdarma

Skupiny: skvělé pro hudbu i pro data

Častým analytickým úkolem je výpočet souhrnných statistik pro jednotlivé skupiny dat. Možná chceš znát tržby podle měsíce nebo podle regionu. V R se proces rozdělení dat do skupin, aplikace souhrnné statistiky na každou skupinu a sloučení výsledků do jedné datové struktury označuje jako „split-apply-combine". Samotný koncept je ale mnohem starší: SQL má příkaz GROUP BY už desítky let. Pojem „map-reduce" je podobný přístup, kde „map" zhruba odpovídá krokům „split" a „apply" a „reduce" je ekvivalentem „combine". Přístup dplyr/sparklyr spočívá v použití group_by() před voláním mutate() nebo summarize(). Do group_by() předáváš názvy sloupců bez uvozovek. Chceš-li například vypočítat průměr sloupce x pro každou kombinaci hodnot ve sloupcích grp1 a grp2, napíšeš následující.

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

Sloupce předávané do group_by() by zpravidla měly být kategorické proměnné. Pokud bys chtěl/a například vypočítat průměrnou váhu lidí v závislosti na jejich výšce, nemá smysl seskupovat přímo podle výšky, protože každý má jinou. Mohl/a bys ale použít cut() pro převod výšek do kategorií a následně vypočítat průměrnou váhu pro každou kategorii.

Toto cvičení je součástí kurzu

Úvod do Sparku se sparklyr v R

Zobrazit kurz

Pokyny k cvičení

Spark připojení je pro tebe připraveno jako spark_conn. Tibble napojený na metadata skladeb uložená ve Sparku je předem definován jako track_metadata_tbl.

  • Seskup obsah track_metadata podle artist_name a:
    • Vytvořte souhrnný průměr duration jako nový sloupec mean_duration.
    • Výsledek ulož do duration_by_artist.
  • Najdi interprety s nejkratšími skladbami seřazením řádků vzestupně podle mean_duration.
  • Stejným způsobem najdi interprety s nejdelšími skladbami seřazením v sestupném pořadí podle mean_duration.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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
  ___
Upravit a spustit kód