Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R循环等待指定的时间_R_Api_Httr_Discogs Api - Fatal编程技术网

R循环等待指定的时间

R循环等待指定的时间,r,api,httr,discogs-api,R,Api,Httr,Discogs Api,我正在使用Discogs API,遇到了速率限制问题。 我有一个循环来循环我所有的发布id,然后再提取更多的发布信息。 速率限制为每60秒25次呼叫,但我似乎找不到一种方法来限制httr内的呼叫。我想知道for循环是否更理想 我已将代码粘贴到下面: releasedata <- lapply(as.list(collection$release_id), function(obj){ url <- httr::GET(paste0("https://api.discogs.com

我正在使用Discogs API,遇到了速率限制问题。 我有一个循环来循环我所有的发布id,然后再提取更多的发布信息。 速率限制为每60秒25次呼叫,但我似乎找不到一种方法来限制httr内的呼叫。我想知道for循环是否更理想

我已将代码粘贴到下面:

releasedata <- lapply(as.list(collection$release_id), function(obj){
  url <- httr::GET(paste0("https://api.discogs.com/releases/", obj))
  url <- rjson::fromJSON(rawToChar(url$content))
  data.frame(release_id = obj, 
             label = url$label[[1]]$name %||% NA,
             year = url$year %||% NA, 
             title = url$title %||% NA, 
             artist_name = url$artist[[1]]$name %||% NA, 
             styles = url$styles[[1]] %||% NA,
             genre = url$genre[[1]] %||% NA,
             average_note = url$community$rating$average %||% NA, 
             votes = url$community$rating$count %||% NA, 
             want = url$community$want %||% NA, 
             have = url$community$have %||% NA, 
             lowest_price = url$lowest_price %||% NA, 
             country = url$country %||% NA)
}) %>% do.call(rbind, .) %>% 
  unique()

releasedatatry
Sys.sleep(2.5)
。有点保守,但要确保在60秒内不会进行太多调用。我已经考虑过sys.sleep,但是,这将如何适应上面粘贴的代码?将其放在循环中的任何位置。只需确保循环总时间超过2.5秒,这样您就不会打太多电话