【问题标题】:R multiple urls into lapplyR 多个网址进入 lapply
【发布时间】:2013-12-26 18:12:43
【问题描述】:

我有一个字符向量中的 url 列表,我想暂停该过程 查询,因为如果不是,则 x 查询被拒绝。

urls=c('url1','url2','url3')

这是我想做的事情

htmlpages=lapply(urls,function(x) readLines(x) Sys.sleep(0.3))

【问题讨论】:

  • 使用{...htmlpages=lapply(urls,function(x) {y <- readLines(x) ; Sys.sleep(0.3), y})。但为了清楚起见,最好在多行函数中写出来。
  • 谢谢你的帮助,如果我理解这个过程;它会将数据暂时存储在 y 中,然后暂停,然后将 y 返回到列表中,然后处理下一个 url?你能解释一下语法分号吗逗号?
  • 逗号是错误的,应该是分号。看看里奇写了什么。单线是一个危险的计划。

标签: r function lapply


【解决方案1】:

正如贾斯汀所说,格式是关键。

htmlpages = lapply(
  urls,
  function(x) 
  {
    y <- readLines(x)
    Sys.sleep(0.3)
    y
  }
)

更新:呼叫之间等待的功能现在已内置到 purrr 中。

library(purrr)
slow_readLines <- slowly(readLines, rate = rate_delay(0.3))
lapply(urls, slow_readLines)

或完整的 purrr 解决方案

library(purrr)
slow_readLines <- slowly(readLines, rate = rate_delay(0.3))
urls %>% map(slow_readLines)

【讨论】:

  • 您可以使用分号; 分隔多个命令,但一般情况下,为了清晰起见,最好编写代码。格式错误的代码是错误的温床。
猜你喜欢
  • 2020-11-21
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
  • 2020-02-18
  • 1970-01-01
相关资源
最近更新 更多