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ş
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'denfamiliarity_by_durationadında bir değişken oluştur.durationveartist_familiarityalanlarını seç.durationın 5 kantil kovasından oluşturulan yeni bir alan,duration_bin, yaratmak içinft_quantile_discretizer()kullan.- Sonucu topla.
duration_binalanını, etiketleriduration_labelsolan bir faktöre dönüştür.
duration_bin'e göreartist_familiarityiçin birggplot()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_binveartist_familiaritydeğ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(___, ___)) +
___()