ÎncepețiÎncepe gratuit

Transformarea variabilelor continue în variabile categorice (2)

Un caz special al transformării anterioare constă în împărțirea unei variabile continue în intervale definite de cuantilele acelei variabile. Această transformare este des folosită pentru a analiza răspunsuri din sondaje sau scoruri de recenzii. Dacă le ceri oamenilor să evalueze ceva de la una la cinci stele, adesea răspunsul median nu va fi trei stele. În acest caz, poate fi util să împarți scorurile pe cuantile. De exemplu, poți crea cinci grupe de cuintile prin împărțire la percentilele 0, 20, 40, 60, 80 și 100.

În R de bază, acest lucru se realizează cu cut() + quantile(). Echivalentul în sparklyr folosește transformarea ft_quantile_discretizer(). Aceasta primește argumentul num_buckets, care determină numărul de intervale. Cele două abordări sunt prezentate împreună mai jos. Ca și înainte, right = FALSE și include.lowest sunt setate.

survey_response_group <- cut(
  survey_score,
  breaks = quantile(survey_score, c(0, 0.25, 0.5, 0.75, 1)),
  labels = c("hate it", "dislike it", "like it", "love it"),
  right  = FALSE,
  include.lowest = TRUE
)
survey_data %>%
  ft_quantile_discretizer("survey_score", "survey_response_group", num_buckets = 4)

Ca și în cazul ft_bucketizer(), intervalele rezultate sunt numere, cu numerotare de la zero. Dacă vrei să lucrezi cu ele în R, convertește-le explicit la tip factor.

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 atașat la metadatele pieselor stocate în Spark a fost predefinit ca track_metadata_tbl. duration_labels este un vector de caractere care descrie intervale de durată.

  • Creează o variabilă numită familiarity_by_duration pornind de la track_metadata_tbl.
    • Selectează câmpurile duration și artist_familiarity.
    • Folosește ft_quantile_discretizer() pentru a crea un nou câmp, duration_bin, format din 5 intervale de cuantile ale lui duration.
    • Colectează rezultatul.
    • Convertește câmpul duration_bin la tip factor cu etichetele din duration_labels.
  • Creează un grafic box plot cu ggplot() pentru artist_familiarity în funcție de duration_bin.
    • Primul argument al ggplot() este argumentul de date, familiarity_by_duration.
    • Al doilea argument al ggplot() este estetica, care primește duration_bin și artist_familiarity învelite în aes().
    • Adaugă geom_boxplot() pentru a desena graficul.

Exercițiu interactiv practic

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

# track_metadata_tbl, duration_labels have been pre-defined
track_metadata_tbl
duration_labels

familiarity_by_duration <- track_metadata_tbl %>%
  # Select duration and artist_familiarity
  ___ %>%
  # Bucketize duration
  ___ %>%
  # Collect the result
  ___ %>%
  # Convert duration bin to factor
  ___

# Draw a boxplot of artist_familiarity by duration_bin
ggplot(___, aes(___, ___)) +
  ___()  
Editează și rulează codul