1. Learn
  2. /
  3. 课程
  4. /
  5. Wprowadzenie do Spark z pakietem sparklyr w R

Connected

道练习

Przekształcanie zmiennych ciągłych na kategoryczne (2)

Szczególnym przypadkiem poprzedniego przekształcenia jest podział zmiennej ciągłej na przedziały wyznaczone przez kwantyle tej zmiennej. Takie przekształcenie często stosuje się przy analizie odpowiedzi ankietowych lub ocen. Jeśli poprosisz kogoś o ocenę w skali od jednej do pięciu gwiazdek, mediana odpowiedzi niekoniecznie wyniesie trzy. W takiej sytuacji przydatne bywa podzielenie wyników według kwantyli. Na przykład możesz utworzyć pięć grup kwintylowych, dzieląc dane w 0., 20., 40., 60., 80. i 100. percentylu.

W bazowym R służy do tego cut() + quantile(). Odpowiednikiem w sparklyr jest przekształcenie ft_quantile_discretizer(). Przyjmuje ono argument num_buckets, który określa liczbę przedziałów. Poniżej pokazano oba podejścia – bazowe R i sparklyr – zestawione razem. Podobnie jak wcześniej, ustawiono right = FALSE i 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)

Podobnie jak w przypadku ft_bucketizer(), wynikowe przedziały są liczbami, numerowanymi od zera. Jeśli chcesz pracować z nimi w R, jawnie przekonwertuj je na typ factor.

说明

100 XP

Połączenie ze Sparkiem zostało utworzone jako spark_conn. Tibble powiązany z metadanymi utworów przechowywanymi w Sparku jest wstępnie zdefiniowany jako track_metadata_tbl. duration_labels to wektor znakowy opisujący przedziały czasu.

  • Utwórz zmienną o nazwie familiarity_by_duration na podstawie track_metadata_tbl.
    • Wybierz pola duration i artist_familiarity.
    • Użyj ft_quantile_discretizer(), aby utworzyć nowe pole duration_bin – złożone z 5 kwantylowych przedziałów zmiennej duration.
    • Zbierz wynik za pomocą collect().
    • Przekonwertuj pole duration_bin na typ factor z etykietami duration_labels.
  • Narysuj wykres pudełkowy ggplot() przedstawiający artist_familiarity w zależności od duration_bin.
    • Pierwszym argumentem ggplot() jest argument danych – familiarity_by_duration.
    • Drugim argumentem ggplot() jest estetyka, która przyjmuje duration_bin i artist_familiarity opakowane w aes().
    • Dodaj geom_boxplot(), aby narysować wykres.