创建一个函数
在上一个练习中,您已经看到如何使用 safely() 来识别不可访问的 URL:我们编写了一个小流程,调用了 read_lines() 的安全版本,并返回了 $errors 列表。
本练习中我们换一种做法,因为我们不只关注错误。与其映射一个安全函数并从结果中提取 "error" 元素,不如编写一个辅助函数,直接对 safe_read() 的输出进行 discard(),把其中的 NULL 元素去掉。
这样一来,您无需再分别提取输出中的 $error 或 $result。如果元素可访问,内容会在 $results 中返回;如果不可访问,则在 $error 中返回错误。
我们已为您提供了 urls 向量。
本练习是课程的一部分
使用 purrr 的函数式编程进阶
练习说明
创建
read_lines()的安全版本。创建名为
safe_read_discard()的函数,用于运行read_lines()的安全版本,并对结果进行discard(),移除其中的NULL元素。将该函数映射到已提供给您的 URL 列表上。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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, ___)