開始使用免費開始

建立一個函式

在前一個練習中,我們用 safely() 來找出無法連線的網址:我們寫了一個小流程去呼叫 read_lines() 的安全版本,並回傳 $errors 的清單。

在這個練習中,我們要換一個做法,因為我們不只關注錯誤。本次不再是對安全函式做 map 然後從結果中擷取 "error" 元素,而是要寫一個輔助函式,直接對 safe_read() 的輸出使用 discard(),把其中的 NULL 元素立刻丟掉。

如此一來,你不需要再分別擷取輸出的 $error$result。你可以直接知道元素是否可連線(內容會出現在 $results),或是不可連線(錯誤會出現在 $error)。

我們已提供 urls 向量給你使用。

本練習屬於課程

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

檢視課程

練習說明

  • 建立 read_lines() 的安全版本。

  • 建立名為 safe_read_discard() 的函式,用來執行 read_lines() 的安全版本,並對 NULL 元素使用 discard()

  • 對提供給你的網址清單套用(map)這個函式。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Create a safe version of read_lines()
safe_read <- ___

# Code a function that discard() the NULL from safe_read()
safe_read_discard <- function(url){
  ___(___) %>%
    ___(is.null)
}

# Map this function on the url list
res <- ___(urls, ___)
編輯並執行程式碼