LoslegenKostenlos loslegen

Stetige Variablen in kategoriale umwandeln (2)

Ein Spezialfall der vorherigen Transformation ist, eine stetige Variable in Bins zu unterteilen, wobei die Bins durch Quantile der Variable definiert sind. Häufig nutzt man diese Transformation, um Umfrageantworten oder Bewertungs-Scores zu analysieren. Wenn du Leute bittest, etwas mit einem bis fünf Sternen zu bewerten, ist die Median-Antwort oft nicht drei Sterne. In diesem Fall kann es hilfreich sein, die Scores nach Quantilen aufzuteilen. Zum Beispiel kannst du fünf Quintil-Gruppen bilden, indem du bei den 0-, 20-, 40-, 60-, 80- und 100-Perzentilen trennst.

Der Base-R-Weg hierfür ist cut() + quantile(). Das sparklyr-Gegenstück verwendet die Transformation ft_quantile_discretizer(). Sie nimmt ein Argument num_buckets, das die Anzahl der Bins bestimmt. Die Base-R- und sparklyr-Varianten werden zusammen gezeigt. Wie zuvor sind right = FALSE und include.lowest gesetzt.

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)

Wie bei ft_bucketizer() sind die resultierenden Bins Zahlen, beginnend bei null. Wenn du in R damit arbeiten willst, wandle sie explizit in einen factor um.

Diese Übung ist Teil des Kurses

Einführung in Spark mit sparklyr in R

Kurs anzeigen

Anleitung zur Übung

Eine Spark-Verbindung wurde als spark_conn für dich erstellt. Ein Tibble, das mit den in Spark gespeicherten Track-Metadaten verknüpft ist, wurde als track_metadata_tbl vordefiniert. duration_labels ist ein Character-Vektor, der Zeitspannen beschreibt.

  • Erstelle aus track_metadata_tbl eine Variable namens familiarity_by_duration.
    • Wähle die Felder duration und artist_familiarity aus.
    • Verwende ft_quantile_discretizer(), um ein neues Feld duration_bin aus 5 Quantil-Bins von duration zu erstellen.
    • Sammle das Ergebnis ein.
    • Wandle das Feld duration_bin mit Labels duration_labels in einen Faktor um.
  • Zeichne einen Boxplot mit ggplot() von artist_familiarity nach duration_bin.
    • Das erste Argument von ggplot() ist das Datenargument familiarity_by_duration.
    • Das zweite Argument von ggplot() ist das Aesthetic, das duration_bin und artist_familiarity in aes() verpackt.
    • Füge geom_boxplot() hinzu, um die Boxen zu zeichnen.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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(___, ___)) +
  ___()  
Code bearbeiten und ausführen