Membagi himpunan data
Pada latihan sebelumnya, Anda telah menentukan bahwa rata-rata jumlah retweet per tweet adalah 3,3. Pada latihan ini, kita akan melihat berapa banyak tweet yang berada di atas rata-rata ini, dan berapa banyak yang berada di bawahnya.
Untuk itu, pertama-tama kita akan membuat sebuah mapper yang menguji apakah .x lebih besar dari 3.3. Lalu kita akan melakukan prapengisian map_at(), dengan .at adalah "retweet_count", dan .f pertama adalah mapper yang telah kita buat, dan kedua adalah negasi dari mapper tersebut.
Perhatikan bahwa sejak kursus ini dibuat, perilaku purrr telah berubah. Untuk menghindari benturan argumen antara .f di partial() dan .f di map_at(), Anda harus menggunakan operator quasi-quotation equals, := (kadang disebut "walrus operator"). Untuk keperluan latihan ini, yang perlu Anda ketahui adalah := bekerja seperti =, tetapi memberi tahu partial() bahwa argumen tersebut harus diteruskan ke map_at() dan bukan disimpan untuk dirinya sendiri.
Setelah alat ini dibuat, kita akan menggunakannya pada objek non_rt, yang merupakan ekstraksi "original tweets" dari himpunan data rstudioconf.
purrr sudah dimuat untuk Anda.
Latihan ini adalah bagian dari kursus
Pemrograman Fungsional Tingkat Menengah dengan purrr
Petunjuk latihan
Buat
mean_above, sebuah mapper yang menguji apakah.xlebih besar dari3.3.Prapenuhi dua versi
map_at(): satu dengan"retweet_count"&mean_above, dan satu lagi dengan"retweet_count"& negasi darimean_above.Petakan kedua fungsi yang telah diprapenuhi tersebut pada
non_rt, dan simpan hanya elemen"retweet_count".Dapatkan ukuran dari kedua hasil tersebut.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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)