ÎncepețiÎncepe gratuit

Grupurile: excelente în muzică, excelente și în date

O problemă frecventă în analiză este cum să calculezi statistici sumare pentru fiecare grup de date. De exemplu, poate vrei să cunoști veniturile din vânzări pe lună sau pe regiune. În R, procesul de împărțire a datelor în grupuri, aplicarea unei statistici sumare pe fiecare grup și combinarea rezultatelor într-o singură structură de date este cunoscut sub numele de „split-apply-combine". Conceptul este mult mai vechi: SQL are instrucțiunea GROUP BY de zeci de ani. Termenul „map-reduce" este un concept similar, unde „map" corespunde aproximativ pașilor de „împărțire" și „aplicare", iar „reduce" corespunde „combinării". Abordarea dplyr/sparklyr este să folosești group_by() înainte de mutate() sau summarize(). Funcția primește numele coloanelor după care se face gruparea, fără ghilimele. De exemplu, pentru a calcula media coloanei x pentru fiecare combinație de valori din coloanele grp1 și grp2, ai scrie următorul cod.

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

Reține că, în general, coloanele transmise la group_by() ar trebui să fie variabile categoriale. De exemplu, dacă vrei să calculezi greutatea medie a persoanelor în funcție de înălțime, nu are sens să grupezi după înălțime, deoarece fiecare persoană are o înălțime unică. Poți însă să folosești cut() pentru a converti înălțimile în categorii și să calculezi greutatea medie pentru fiecare categorie.

Acest exercițiu face parte din cursul

Introducere în Spark cu sparklyr în R

Vezi cursul

Instrucțiuni pentru exercițiu

O conexiune Spark a fost creată pentru tine sub numele spark_conn. Un tibble asociat metadatelor pistelor stocate în Spark a fost predefinit ca track_metadata_tbl.

  • Grupează conținutul lui track_metadata după artist_name, apoi:
    • Calculează media grupată a lui duration ca o coloană nouă, mean_duration.
    • Atribuie rezultatele variabilei duration_by_artist.
  • Găsește artiștii cu cele mai scurte melodii ordonând rândurile în ordine crescătoare după mean_duration.
  • Similar, găsește artiștii cu cele mai lungi melodii ordonând în ordine descrescătoare după mean_duration.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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
  ___
Editează și rulează codul