LoslegenKostenlos starten

Den Datensatz aufteilen

In einer früheren Übung hast du ermittelt, dass die durchschnittliche Zahl an Retweets pro Tweet 3,3 beträgt. In dieser Übung schauen wir uns an, wie viele Tweets über diesem Mittelwert liegen und wie viele darunter.

Dazu erstellen wir zuerst einen Mapper, der prüft, ob .x größer als 3.3 ist. Danach füllen wir map_at() vor: .at ist "retweet_count", und .f ist zuerst der eben erstellte Mapper und anschließend die Negation dieses Mappers.

Beachte: Seit der Erstellung dieses Kurses hat sich das Verhalten von purrr geändert. Um einen Konflikt zwischen dem Argument .f in partial() und .f in map_at() zu vermeiden, musst du den Quasi-Quotation-Gleichheitsoperator := (manchmal „Walross-Operator“ genannt) verwenden. Für diese Übung reicht zu wissen: := funktioniert wie =, teilt partial() aber mit, dass das Argument an map_at() weitergegeben werden soll, statt bei partial() zu bleiben.

Sobald diese Werkzeuge bereit sind, wenden wir sie auf das Objekt non_rt an, das die „Originaltweets“ aus dem rstudioconf-Datensatz enthält.

purrr wurde bereits für dich geladen.

Diese Übung ist Teil des Kurses

<Kurs>Fortgeschrittene funktionale Programmierung mit purrr</Kurs>
Kurs ansehen

Übungsanweisungen

  • Erstelle mean_above, einen Mapper, der prüft, ob .x größer als 3.3 ist.

  • Fülle zwei Varianten von map_at() vor: eine mit "retweet_count" & mean_above und eine andere mit "retweet_count" & der Negation von mean_above.

  • Wende diese beiden vorbefüllten Funktionen auf non_rt an und behalte nur die Elemente "retweet_count".

  • Bestimme die Größe der beiden Ergebnisse.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Create mean_above, a mapper that tests if .x is over 3.3
mean_above <- ___(~ ___)

# Prefil map_at() with "retweet_count", mean_above for above, 
# and mean_above negation for below
above <- partial(___, .at = "retweet_count", .f := ___ )
below <- partial(___, .at = "retweet_count", .f := ___ )

# Map above() and below() on non_rt, keep the "retweet_count"
ab <- ___(non_rt, ___) %>% ___("retweet_count")
bl <- ___(non_rt, ___) %>% ___("retweet_count")

# Compare the size of both elements
___(ab)
___(bl)
Code bearbeiten und ausführen