Curăță datele cu keep
De la începutul acestui curs, am lucrat cu rezultatele unui test A/B desfășurat pe parcursul unei săptămâni.
Am stocat aceste rezultate într-o listă numită all_visits. Lista conține visit_a, visit_b și visit_c. Acești vectori nu au nume și fiecare conține șapte valori – câte una pentru fiecare zi a săptămânii.
Prima întrebare pe care ne-o punem este: în care zile s-au înregistrat, în medie, mai mult de 100 de vizite pe oră? Vom folosi funcția keep(). Însă rezultatul ar fi greu de interpretat cu un vector fără nume: ai vedea valorile, dar nu ai ști cărui zi îi corespund.
Vestea bună este că poți folosi funcția set_names() pentru a rezolva această problemă. Asta vom face în acest capitol: mai întâi aplicăm keep() pe vectori fără nume, apoi pe vectori cu nume.
Acest exercițiu face parte din cursul
Programare funcțională intermediară cu purrr
Instrucțiuni pentru exercițiu
- Creează un mapper care să testeze dacă
.xeste mai mare decât 100. Îl vei folosi de două ori. - Combină acest mapper cu
keep()și aplică-l pe lista fără numeall_visit. Deoarece rezultatul nu are nume, nu știi care zile au fost păstrate. - Atribuie nume fiecărui vector combinând funcțiile
map()șiset_names(), folosind vectorul de nume pe care l-am furnizat. - Aplică mapper-ul creat anterior pe lista nou denumită. Vei observa că rezultatul este mult mai ușor de citit acum!
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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, ___))