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
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_metadatadupăartist_name, apoi:- Calculează media grupată a lui
durationca o coloană nouă,mean_duration. - Atribuie rezultatele variabilei
duration_by_artist.
- Calculează media grupată a lui
- 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
___