安全的迭代
和上一章一样,假设您是一名在网页代理公司工作的数据分析师。这一次,您被要求做一些网页抓取。
(注意:即使您不懂网页抓取也不用担心,我们会从简单开始,并解释所有函数。)
您收到了一个 URL 列表,但您怀疑其中一些并不是真实地址。您要做的第一件事是测试是否能连接到这些 URL。为此,我们将使用 readr 包中的一个简单函数:read_lines(),并把它放进 safely() 中。给定一个 URL,read_lines() 会读取 HTML;如果该 URL 无法访问,则返回错误。
工作区中已提供向量 urls。如果您想查看其中内容,请在控制台打印它。
本练习是课程的一部分
使用 purrr 的函数式编程进阶
练习说明
创建
read_lines()函数的安全版本。将这个新函数映射到名为
urls的给定向量上。使用
set_names()为结果设置名称。提取每个子列表中的
"error"元素。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Create a safe version of read_lines()
safe_read <- ___(___)
# Map it on the urls vector
res <- ___(urls, ___)
# Set the name of the results to `urls`
named_res <- ___(res, ___)
# Extract only the "error" part of each sublist
___(named_res, ___)