Veri kümesini bölme
Önceki bir egzersizde, tweet başına ortalama retweet sayısının 3.3 olduğunu bulmuştun. Bu egzersizde, bu ortalamanın üzerinde kaç tweet var, altında kaç tweet var buna bakacağız.
Bunu yapmak için, önce .x değerinin 3.3'ün üzerinde olup olmadığını test eden bir mapper oluşturacağız. Ardından map_at() fonksiyonunu önceden dolduracağız; burada .at "retweet_count" olacak ve .f önce oluşturduğumuz mapper, ikinci olarak da bu mapper'ın olumsuzu olacak.
Bu ders oluşturulduğundan beri purrr'ün davranışı değişti; partial() içindeki .f ile map_at() içindeki .f argümanlarının çakışmasını önlemek için, yarı-alıntılama eşittir operatörü := (bazen "walrus operatörü" olarak da bilinir) kullanmalısın. Bu egzersizin amacı için bilmen gereken tek şey, :='nin = gibi çalıştığı ancak partial()'a bu argümanın kendisinde tutulmak yerine map_at()'a iletilmesi gerektiğini bildirdiğidir.
Bu araçları oluşturduktan sonra, bunları rstudioconf veri kümesinden "orijinal tweet"lerin çıkarımı olan non_rt nesnesi üzerinde kullanacağız.
purrr senin için yüklendi.
Bu egzersiz, kursun bir parçasıdır
purrr ile Orta Düzey Fonksiyonel Programlama
Egzersiz talimatları
.x'in3.3'ün üzerinde olup olmadığını test eden bir mapper olanmean_above'u oluştur.map_at()'in iki sürümünü önceden doldur: biri"retweet_count"vemean_aboveile, diğeri"retweet_count"vemean_above'un olumsuzu ile.Bu iki önceden doldurulmuş fonksiyonu
non_rtüzerinde çalıştır ve yalnızca"retweet_count"öğelerini tut.İki sonucun boyutunu elde et.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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)