建立一個函式
在前一個練習中,我們用 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, ___)