Städa upp dina data med keep
Sedan kursens start har vi arbetat med resultaten från ett veckolångt A/B-test.
Vi har samlat resultaten i en lista kallad all_visits. Den innehåller visit_a, visit_b och visit_c. Dessa vektorer är namnlösa och innehåller vardera sju tal – ett för varje dag i veckan.
Första frågan vi vill besvara är: vilka dagar nådde i genomsnitt fler än 100 besök per timme? Vi använder funktionen keep(). Men svaret blir svårtolkat med en namnlös vektor – du ser talen, men vet inte vilken dag de tillhör.
Lösningen är att använda set_names(). Det är precis vad vi gör i det här kapitlet: först tillämpar vi keep() på namnlösa vektorer, sedan på namngivna.
Den här övningen är en del av kursen
Funktionell programmering på mellannivå med purrr
Övningsinstruktioner
- Skapa en mapper som testar om
.xär större än 100. Du kommer att använda den två gånger. - Kombinera mappern med
keep()och applicera den på den namnlösa listanall_visit. Eftersom resultatet är namnlöst vet du inte vilka dagar du har behållit. - Namnge varje vektor genom att kombinera
map()ochset_names(), med hjälp av den namnvektor vi har tillhandahållit. - Applicera den tidigare skapade mappern på den namngivna listan. Som du ser är resultatet nu mycket lättare att läsa!
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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, ___))