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>Übungsanweisungen
Erstelle
mean_above, einen Mapper, der prüft, ob.xgrößer als3.3ist.Fülle zwei Varianten von
map_at()vor: eine mit"retweet_count"&mean_aboveund eine andere mit"retweet_count"& der Negation vonmean_above.Wende diese beiden vorbefüllten Funktionen auf
non_rtan 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)