LoslegenKostenlos starten

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>
Kurs ansehen

Übungsanweisungen

  • Erstelle einen Mapper, der prüft, ob .x größer als 100 ist. Du wirst ihn zweimal verwenden.
  • Kombiniere diesen Mapper mit keep() und mappe ihn auf die unbenannte Liste all_visit. Da das Ergebnis unbenannt ist, weißt du nicht, welche Tage beibehalten wurden.
  • Benenne jeden Vektor, indem du map() und die Funktion set_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, ___))
Code bearbeiten und ausführen