सब कुछ एक ही कॉल में
इस कोड को और भी reproducible बनाने के लिए, हम एक ऐसा फंक्शन बनाएँगे जो यह सब एक ही कॉल में कर दे। इस फंक्शन का एक skeleton हमने पहले से दे रखा है, अब इसे पूरा करना आपकी बारी है!
पिछले अभ्यासों में, हमने यह प्रक्रिया कई चरणों में लिखी थी। अब, हम इसे सिर्फ एक कॉल में करना चाहते हैं: इसके लिए हम ऐसा फंक्शन लिखेंगे जो URLs की एक list ले, और जो elements पहुंच योग्य (reachable) नहीं हैं, उनके नाम लौटाए।
एक बार जब आप यह फंक्शन लिख लेंगे, तो आप इसे सेव कर सकते हैं और जब भी आपको URLs की किसी list को clean करना हो, दोबारा इस्तेमाल कर सकते हैं। और चाहें तो इसे किसी पैकेज में भी डाल सकते हैं ;)
पिछले अभ्यास की urls list आपके workspace में उपलब्ध है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट फ़ंक्शनल प्रोग्रामिंग विथ purrr
अभ्यास निर्देश
map()कॉल के अंदर,read_lines()काpossibly()वेरिएशन बनाएँ जो अन्यथा404लौटाए।आउटपुट के नाम सेट करें।
हर sublist को character vector में बदलने के लिए
paste()फंक्शन का उपयोग करें औरcollapseआर्ग्युमेंट को" "पर सेट करें।वे elements हटा दें जो 404 के बराबर हैं।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
url_tester <- function(url_list){
url_list %>%
# Map a version of read_lines() that otherwise returns 404
map( ___(___, otherwise = ___) ) %>%
# Set the names of the result
___( urls ) %>%
# paste() and collapse each element
map(___, ___ = " ") %>%
# Remove the 404
___(___) %>%
names() # Will return the names of the good ones
}
# Try this function on the urls object
url_tester(urls)