Zacznij terazZacznij za darmo

Podział zbioru danych

W poprzednim ćwiczeniu wyznaczono, że średnia liczba retweetów na tweet wynosi 3,3. Teraz przyjrzymy się, ile tweetów przekracza tę średnią, a ile jest poniżej niej.

W tym celu najpierw stworzymy mapper sprawdzający, czy .x jest większe od 3.3. Następnie wypełnimy wstępnie map_at(), gdzie .at to "retweet_count", a .f to najpierw stworzony mapper, a następnie jego negacja.

Uwaga: od czasu powstania tego kursu zachowanie purrr uległo zmianie. Aby uniknąć konfliktu argumentów między .f w partial() a .f w map_at(), należy użyć operatora quasi-cytowania := (czasem nazywanego „operatorem morsa"). Na potrzeby tego ćwiczenia wystarczy wiedzieć, że := działa jak =, ale informuje partial(), że argument powinien zostać przekazany do map_at(), a nie zatrzymany dla siebie.

Gdy narzędzia będą gotowe, użyjemy ich na obiekcie non_rt – wyodrębnieniu „oryginalnych tweetów" ze zbioru danych rstudioconf.

Biblioteka purrr jest już wczytana.

To ćwiczenie jest częścią kursu

Funkcyjne programowanie średnio zaawansowane z purrr

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz mean_above – mapper sprawdzający, czy .x jest większe od 3.3.

  • Przygotuj dwie wersje map_at(): jedną z "retweet_count" i mean_above, a drugą z "retweet_count" i negacją mean_above.

  • Zastosuj obie wstępnie wypełnione funkcje na obiekcie non_rt i zachowaj tylko elementy "retweet_count".

  • Sprawdź rozmiar obu wyników.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod