開始使用免費開始

一次呼叫全搞定

為了讓這段程式碼更容易重現,我們要建立一個一次呼叫就能完成的函式。我們已經為你提供了這個函式的骨架,現在輪到你把它補完整!

在前面的練習中,我們把流程拆成好幾個步驟。現在希望只用一次呼叫就完成:我們會寫一個函式,接受一個 URL 的清單,並回傳無法連線之元素的名稱。

寫好這個函式之後,你可以把它存起來,日後只要需要清理 URL 清單就能重複使用。也許之後還能放進一個套件裡 ;)

先前練習中的 urls 清單已經放在你的工作空間。

本練習屬於課程

使用 purrr 的 R 語言中級函式程式設計

檢視課程

練習說明

  • 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)
編輯並執行程式碼