r - sys.sleep 使用可能来自 purrr 包的函数

标签 r purrr

我正在使用可能来自 purrr 的函数内 httr 的 POST 函数从 URL 向量下载多个 pdf,这样如果发生任何错误,我可以跳到下一个 URL。问题是我需要将 Sys.sleep 从一个下载添加到下一个下载。我知道如何使用 for 循环来做到这一点,但我不知道如何使用包 purrr 来做到这一点。例如,对于 for 循环,我会这样做:

df<-data.frame(id=1:4,url=c("url1","url2","url3","url4"))
for (i in 1:4){
POST(df$url[i],body=body,write_disk(paste0("df$id[i]",".pdf"))
Sys.sleep(1)
        }

如何在 purrr 包中使用相当于 Sys.sleep 的东西?

最佳答案

我没有立即关注上面阿里斯塔尔的回答中发生的事情,所以只是为了完全明确,

您可以使用 ~{} 将多行表达式作为匿名函数传递给 map,如下所示:

map(1:3, ~ {
  Sys.sleep(10)
  cat(.x)
  .x
})

h/t Emil Hvitfeldt

关于r - sys.sleep 使用可能来自 purrr 包的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43127114/

相关文章:

regex - R:如何从数据框中提取一些大数字,而不是其他数字

r - 如何在带有 apply 或 map 的列表上使用 case_when()

替换数据框列表中编号列的 NA

r - 从 R 中的 map_*() 构建线性回归模型

r - purrr 映射未生成整齐的数据

r - 如何在Markdown中为数学方程式自动编号?

r - 将 xts 或 zoo 时间序列对象的每一行除以固定行

r - 将 "Name"分成数据帧的 "FirstName"和 "LastName"列

r - 当我使用 `furrr::future_map_int()` 时,为什么 `purrr::map_int()` 比 `dplyr::mutate()` 慢?

r - 在 purrr::map 函数中获取迭代名称