Bereinige deine Daten mit keep
Seit Beginn dieses Kurses verwenden wir die Ergebnisse eines einwöchigen A/B-Tests.
Wir haben diese Ergebnisse in eine Liste namens all_visits gepackt. Diese Liste enthält visit_a, visit_b und visit_c. Diese Vektoren sind unbenannt. Alle enthalten sieben Zahlen, eine für jeden Wochentag.
Die erste Frage lautet: An welchen Tagen wurden durchschnittlich mehr als 100 Besuche pro Stunde erreicht? Wir verwenden dafür die Funktion keep(). Ohne benannte Vektoren wäre die Antwort jedoch schwer lesbar: Du hättest nur die Zahlen, wüsstest aber nicht, zu welchem Tag sie gehören.
Die gute Nachricht: Mit der Funktion set_names() kannst du dieses Problem lösen. So gehen wir in dieser Aufgabe vor: Erst verwenden wir keep() auf unbenannten Vektoren, dann auf benannten.
Diese Übung ist Teil des Kurses
<Kurs>Fortgeschrittene funktionale Programmierung mit purrr</Kurs>Übungsanweisungen
- Erstelle einen Mapper, der prüft, ob
.xgrößer als 100 ist. Du wirst ihn zweimal verwenden. - Kombiniere diesen Mapper mit
keep()und mappe ihn auf die unbenannte Listeall_visit. Da das Ergebnis unbenannt ist, weißt du nicht, welche Tage beibehalten wurden. - Benenne jeden Vektor, indem du
map()und die Funktionset_names()kombinierst und den von uns bereitgestellten Namensvektor verwendest. - Mappe den zuvor erstellten Mapper auf die nun benannte Liste. Wie du siehst, ist das jetzt deutlich lesbarer!
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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, ___))