Mulai sekarangMulai gratis

Mengubah variabel kontinu menjadi kategorikal (2)

Kasus khusus dari transformasi sebelumnya adalah memotong variabel kontinu ke dalam bucket yang ditentukan oleh kuantil dari variabel tersebut. Penggunaan umum transformasi ini adalah untuk menganalisis respons survei atau skor ulasan. Jika Anda meminta orang menilai sesuatu dari satu hingga lima bintang, sering kali nilai tengahnya bukan tiga bintang. Dalam kasus seperti ini, akan berguna untuk membagi skor berdasarkan kuantil. Misalnya, Anda dapat membuat lima kelompok kuintil dengan membagi pada persentil ke-0, 20, 40, 60, 80, dan 100.

Cara base R untuk melakukan ini adalah cut() + quantile(). Padanannya di sparklyr menggunakan transformasi ft_quantile_discretizer(). Fungsi ini menerima argumen num_buckets, yang menentukan jumlah bucket. Cara perhitungan di base R dan sparklyr ditunjukkan bersama. Seperti sebelumnya, right = FALSE dan include.lowest diatur.

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)

Seperti pada ft_bucketizer(), bin yang dihasilkan berupa angka yang dihitung mulai dari nol. Jika Anda ingin mengolahnya di R, ubahlah secara eksplisit menjadi factor.

Latihan ini merupakan bagian dari kursus

Pengantar Spark dengan sparklyr di R

Lihat Kursus

Instruksi latihan

Koneksi Spark telah dibuat untuk Anda sebagai spark_conn. Sebuah tibble yang terhubung ke metadata trek yang disimpan di Spark telah didefinisikan sebelumnya sebagai track_metadata_tbl. duration_labels adalah vektor karakter yang mendeskripsikan lamanya durasi.

  • Buat variabel bernama familiarity_by_duration dari track_metadata_tbl.
    • Pilih kolom duration dan artist_familiarity.
    • Gunakan ft_quantile_discretizer() untuk membuat kolom baru, duration_bin, dari 5 bin kuantil duration.
    • Kumpulkan hasilnya.
    • Ubah kolom duration_bin menjadi faktor dengan label duration_labels.
  • Gambar plot kotak ggplot() dari artist_familiarity menurut duration_bin.
    • Argumen pertama untuk ggplot() adalah argumen data, yaitu familiarity_by_duration.
    • Argumen kedua untuk ggplot() adalah estetika, yang menggunakan duration_bin dan artist_familiarity dibungkus dalam aes().
    • Tambahkan geom_boxplot() untuk menggambar batangnya.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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(___, ___)) +
  ___()  
Edit dan Jalankan Kode