keep ile verini temizle
Bu kursun başından beri, bir haftalık A/B testinin sonuçlarını kullanıyoruz.
Bu sonuçları all_visits adlı bir listeye koyduk. Bu liste visit_a, visit_b ve visit_c içerir. Bu vektörlerin adı yok. Hepsi haftanın her günü için bir tane olmak üzere yedi sayı içeriyor.
Sormak istediğimiz ilk soru şu: haftanın hangi günlerinde saatte ortalama 100'den fazla ziyaret gerçekleşti? keep() fonksiyonunu kullanacağız. Ama adsız bir vektörle yanıt okunaklı olmayacaktır: sayılar olur, ama bu sayıların hangi güne karşılık geldiğini bilemezsin.
İyi haber şu: bu sorunu çözmek için set_names() fonksiyonunu kullanabilirsin. Bu bölümde yapacağımız şey şu: önce adsız vektörlerde keep() kullanmak, sonra adlandırılmış olanlarda kullanmak.
Bu egzersiz, kursun bir parçasıdır
purrr ile Orta Düzey Fonksiyonel Programlama
Egzersiz talimatları
.x'in 100'den büyük olup olmadığını test edecek bir eşleyici (mapper) oluştur. Bunu iki kez kullanacaksın.- Bu eşleyiciyi
keep()ile birleştir ve adsız listeall_visitüzerinde uygula. Sonuç adsız olduğu için hangi günleri tuttuğunu bilemiyorsun. - Sağladığımız adlar vektörünü kullanarak,
map()veset_names()fonksiyonlarını birleştirip her vektörü adlandır. - Daha önce oluşturduğun eşleyiciyi yeni adlandırılmış liste üzerinde uygula. Gördüğün gibi, şimdi çok daha okunaklı!
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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, ___))