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

Převod spojitých proměnných na kategorické (2)

Zvláštním případem předchozí transformace je rozdělení spojité proměnné do košů, jejichž hranice jsou určeny kvantily dané proměnné. Tato transformace se běžně používá při analýze odpovědí z dotazníků nebo hodnocení. Pokud necháš lidi hodnotit něco na škále od jedné do pěti hvězdiček, medián odpovědí často nebude tři hvězdičky. V takovém případě může být užitečné rozdělit skóre podle kvantilů. Můžeš například vytvořit pět kvintilových skupin rozdělením na 0., 20., 40., 60., 80. a 100. percentilu.

V základním R se to řeší kombinací cut() + quantile(). Ekvivalentem v sparklyr je transformace ft_quantile_discretizer(), která přijímá argument num_buckets určující počet košů. Oba přístupy jsou ukázány vedle sebe. Stejně jako dříve jsou nastaveny parametry right = FALSE a include.lowest.

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)

Stejně jako u ft_bucketizer() jsou výsledné koše číslovány od nuly. Pokud s nimi chceš pracovat v R, explicitně je převeď na factor.

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. duration_labels je znakový vektor popisující délky trvání.

  • Vytvoř proměnnou familiarity_by_duration z track_metadata_tbl.
    • Vyber pole duration a artist_familiarity.
    • Pomocí ft_quantile_discretizer() vytvoř nové pole duration_bin složené z 5 kvantilových košů proměnné duration.
    • Výsledek načti pomocí collect.
    • Převeď pole duration_bin na faktor s popisky duration_labels.
  • Vykresli krabicový graf ggplot() závislosti artist_familiarity na duration_bin.
    • Prvním argumentem ggplot() je datový argument familiarity_by_duration.
    • Druhým argumentem ggplot() je estetika, která přijímá duration_bin a artist_familiarity zabalené do aes().
    • Přidej geom_boxplot() pro vykreslení grafu.

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, 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(___, ___)) +
  ___()  
Upravit a spustit kód