一次调用全部搞定
为使这段代码更易复现,我们将编写一个函数,一次调用即可完成整个流程。我们已经为您提供了该函数的骨架,现在请您来补全它!
在前面的练习中,我们把流程拆分成了多个步骤。现在,希望用一次调用就能完成:我们将编写一个函数,接收一个 URL 列表,并返回那些无法访问的元素名称。
编写好这个函数后,您可以将其保存,在需要清理 URL 列表时随时复用。甚至可以把它放进一个 package 中 ;)
上一练习中的 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)