Aan de slagGa gratis aan de slag

Ruim je data op met keep

Sinds het begin van deze cursus gebruiken we de resultaten van een weeklange A/B-test.

We hebben deze resultaten in een lijst gezet, all_visits. Deze lijst bevat visit_a, visit_b en visit_c. Deze vectoren hebben geen namen. Ze bevatten elk zeven getallen, één voor elke dag van de week.

De eerste vraag die we willen stellen is: op welke dagen waren er gemiddeld meer dan 100 bezoeken per uur? We gebruiken de functie keep(). Maar het antwoord is niet leesbaar met een onbenoemde vector: je ziet de getallen, maar je weet niet bij welke dag ze horen.

Het goede nieuws: je kunt de functie set_names() gebruiken om dit op te lossen. Dat is wat we in deze opdracht doen: eerst keep() gebruiken op onbenoemde vectoren, daarna op benoemde.

Deze oefening maakt deel uit van de cursus

Gevorderd functioneel programmeren met purrr

Cursus bekijken

Oefeninstructies

  • Maak een mapper die test of .x groter is dan 100. Je gebruikt hem twee keer.
  • Combineer deze mapper met keep() en pas hem toe op de onbenoemde lijst all_visit. Doordat het resultaat onbenoemd is, weet je niet welke dagen je hebt behouden.
  • Geef elke vector een naam door map() te combineren met de functie set_names(), met de door ons aangeleverde vector met namen.
  • Pas de eerder gemaakte mapper toe op de nieuw benoemde lijst. Zoals je ziet, is het nu veel beter leesbaar!

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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, ___))
Code bewerken en uitvoeren