BaşlayınÜcretsiz başlayın

Sürekli değişkenleri kategorik hale getirme (2)

Önceki dönüşümün özel bir durumu, sürekli bir değişkeni, kovaların değişkenin kantillerine göre tanımlandığı kovalarına ayırmaktır. Bu dönüşümün yaygın bir kullanım alanı, anket yanıtlarını veya inceleme puanlarını analiz etmektir. İnsanlardan bir şeyi birden beş yıldıza kadar derecelendirmelerini istersen, çoğu zaman medyan yanıt üç yıldız olmaz. Bu durumda, puanları kantillere göre bölmek işe yarayabilir. Örneğin, 0., 20., 40., 60., 80. ve 100. yüzdeliklerde bölerek beş adet beşlik grup (quintile) oluşturabilirsin.

Base R ile bunu yapmanın yolu cut() + quantile() kombinasyonudur. sparklyr karşılığı ise ft_quantile_discretizer() dönüşümünü kullanır. Bu fonksiyon, kova sayısını belirleyen num_buckets adlı bir argüman alır. Base R ve sparklyr ile hesaplama yolları birlikte gösterilmiştir. Daha önce olduğu gibi, right = FALSE ve include.lowest ayarlanmıştır.

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)

ft_bucketizer() ile olduğu gibi, ortaya çıkan kovalar sıfırdan başlayarak numaralandırılmış sayılardır. Bunlarla R içinde çalışmak istiyorsan, açıkça bir factora dönüştürmelisin.

Bu egzersiz, kursun bir parçasıdır

R ile sparklyr kullanarak Spark’a Giriş

Kursa Göz Atın

Egzersiz talimatları

spark_conn olarak bir Spark bağlantısı senin için oluşturuldu. Spark'ta depolanan parça (track) metaverisine bağlı bir tibble track_metadata_tbl olarak önceden tanımlandı. duration_labels, zaman uzunluklarını açıklayan bir karakter vektörüdür.

  • track_metadata_tbl'den familiarity_by_duration adında bir değişken oluştur.
    • duration ve artist_familiarity alanlarını seç.
    • durationın 5 kantil kovasından oluşturulan yeni bir alan, duration_bin, yaratmak için ft_quantile_discretizer() kullan.
    • Sonucu topla.
    • duration_bin alanını, etiketleri duration_labels olan bir faktöre dönüştür.
  • duration_bin'e göre artist_familiarity için bir ggplot() kutu grafiği çiz.
    • ggplot() için ilk argüman veri argümanıdır: familiarity_by_duration.
    • ggplot() için ikinci argüman estetik (aesthetic) olup, aes() içine alınmış duration_bin ve artist_familiarity değerlerini alır.
    • Çubukları çizmek için geom_boxplot() ekle.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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(___, ___)) +
  ___()  
Kodu Düzenle ve Çalıştır