MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Buat mean_above, sebuah mapper yang menguji apakah .x lebih besar dari 3.3.

  • Prapenuhi dua versi map_at(): satu dengan "retweet_count" & mean_above, dan satu lagi dengan "retweet_count" & negasi dari mean_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)
Edit dan Jalankan Kode