ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un mapper care să testeze dacă .x este mai mare decât 100. Îl vei folosi de două ori.
  • Combină acest mapper cu keep() și aplică-l pe lista fără nume all_visit. Deoarece rezultatul nu are nume, nu știi care zile au fost păstrate.
  • Atribuie nume fiecărui vector combinând funcțiile map() și set_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, ___))
Editează și rulează codul