Rapikan data Anda dengan keep
Sejak awal kursus ini, kita menggunakan hasil uji A/B selama satu minggu.
Kami menempatkan hasil tersebut dalam sebuah list bernama all_visits. List ini berisi visit_a, visit_b, dan visit_c. Vektor-vektor ini tidak bernama. Masing-masing berisi tujuh angka, satu untuk setiap hari dalam seminggu.
Pertanyaan pertama yang ingin kita ajukan adalah: hari mana yang rata-rata mencapai lebih dari 100 kunjungan per jam? Kita akan menggunakan fungsi keep(). Namun jawabannya tidak akan mudah dibaca jika vektornya tidak bernama: Anda akan punya angkanya, tetapi tidak tahu angka itu milik hari yang mana.
Kabar baiknya: Anda dapat menggunakan fungsi set_names() untuk mengatasi hal ini. Inilah yang akan kita lakukan di bab ini: pertama, gunakan keep() pada vektor tanpa nama, lalu pada vektor yang sudah diberi nama.
Latihan ini adalah bagian dari kursus
Pemrograman Fungsional Tingkat Menengah dengan purrr
Petunjuk latihan
- Buat sebuah mapper yang akan menguji apakah
.xlebih dari 100. Anda akan menggunakannya dua kali. - Gabungkan mapper ini dengan
keep(), dan terapkan pada list tanpa namaall_visit. Karena hasilnya tidak bernama, Anda tidak tahu hari mana yang Anda pertahankan. - Beri nama setiap vektor dengan mengombinasikan
map()dan fungsiset_names(), menggunakan vektor nama yang telah kami sediakan. - Terapkan mapper yang telah dibuat sebelumnya pada list yang baru saja diberi nama. Seperti yang Anda lihat, sekarang lebih mudah dibaca!
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Create a mapper that test if .x is more than 100
is_more_than_hundred <- ___(~ .x > 100)
# Use this mapper with keep() on the all_visits object
map(all_visits, ~ ___(.x, is_more_than_hundred))
# Use the day vector to set names to all_list
day <- c("mon", "tue", "wed", "thu", "fri", "sat", "sun")
full_visits_named <- map(all_visits, ~ ___(.x, ___))
# Use this mapper with keep()
map(full_visits_named, ~ ___(.x, ___))