始める無料で始める

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)
コードを編集して実行