1回の呼び出しでまとめて実行
このコードをさらに再現しやすくするために、1回の呼び出しで処理する関数を作成します。関数のひな型は用意してあるので、仕上げていきましょう。
これまでの演習では、処理をいくつかの手順に分けて書きました。今回は、これを1回の呼び出しで済むようにします。具体的には、URL のリストを受け取り、到達できない要素の名前を返す関数を書きます。
この関数を書いたら保存しておけば、URL リストをクリーンアップしたいときにいつでも再利用できます。パッケージに入れてもよいかもしれませんね ;)
前の演習で使った urls リストはワークスペースに用意されています。
この演習はコースの一部です
purrr で学ぶ中級関数型プログラミング
演習の手順
map()の呼び出し内で、read_lines()のpossibly()版を作成し、失敗時は404を返すようにしてください。出力に名前を設定してください。
各サブリストを文字ベクトルに変換するために、
paste()関数を使い、collapse引数を" "に設定してください。値が 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)