डेटासेट को बाँटना
एक पिछले अभ्यास में, आपने पाया था कि प्रति ट्वीट रीट्वीट्स की औसत संख्या 3.3 है। इस अभ्यास में, हम देखेंगे कि कितने ट्वीट्स इस औसत से ऊपर हैं और कितने नीचे।
ऐसा करने के लिए, हम पहले एक mapper बनाएँगे जो जाँचता है कि .x 3.3 से ऊपर है या नहीं। फिर हम map_at() को प्रीफिल करेंगे, जहाँ .at "retweet_count" होगा, और .f पहले हमारा बनाया हुआ mapper होगा, और दूसरी बार उसी mapper का negation होगा।
ध्यान दें कि इस कोर्स के बनते समय के बाद से purrr का व्यवहार बदल गया है, और partial() में .f और map_at() में .f के बीच argument clash से बचने के लिए, आपको quasi-quotation equals ऑपरेटर := (कभी-कभी "walrus ऑपरेटर" भी कहा जाता है) का इस्तेमाल करना होगा। इस अभ्यास के उद्देश्य से, आपको बस इतना जानना है कि := = की तरह काम करता है, लेकिन यह partial() को बता देता है कि argument को अपने पास रखने के बजाय map_at() को पास करना है।
इन टूल्स को बनाने के बाद, हम इन्हें non_rt ऑब्जेक्ट पर इस्तेमाल करेंगे, जो rstudioconf डेटासेट से "original tweets" का extraction है।
purrr आपके लिए लोड कर दिया गया है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट फ़ंक्शनल प्रोग्रामिंग विथ purrr
अभ्यास निर्देश
mean_aboveबनाएँ, एक mapper जो जाँचता है कि.x3.3से ऊपर है।map_at()के दो संस्करण प्रीफिल करें: एक"retweet_count"औरmean_aboveके साथ, और दूसरा"retweet_count"औरmean_aboveके negation के साथ।इन दोनों प्रीफिल्ड फंक्शंस को
non_rtपर map करें, और केवल"retweet_count"एलिमेंट्स रखें।दोनों परिणामों का आकार निकालें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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)