Я пытался пропустить итерацию download.file
, которая занимает слишком много времени и не работает соответствующим образом, хотя я попробовал некоторые ответы на мою проблему. Ниже приведен пример с кодом, который я использовал. Моя основная проблема заключается в том, что некоторые идентификаторы (из объекта vec
ниже), которые я использую для извлечения файлов .csv, не имеют связанных файлов .csv, а URL-адрес не работает должным образом - я думаю, что он продолжает пытаться URL-адрес до тех пор, пока он не получит ответ, который он не получает, и цикл начинается слишком долго. Как я могу пропустить идентификатор, если download.file
начинает занимать слишком много времени?
library(stringr)
library(R.utils)
vec=c("05231992000181","00628708000191","05816554000185", "01309949000130","07098414000144", "07299568000102", "12665438000178", "63599658000181", "12755123000111", "12376766000154",
"11890564000163", "04401095000106", "11543768000128", "10695634000160", "34931022000197", "10422225000190",
"09478854000152", "12682106000100", "11581441000140", "10545688000149", "10875891000183", "13095498000165",
"10809607000170", "07976466000176", "11422211000139", "41205907000174", "08326720000153", "06910908000119",
"04196935000227", "02323120000155", "96560701000154")
for (i in seq_along(vec)) {
url = paste0("http://compras.dados.gov.br/licitacoes/v1/licitacoes.csv?cnpj_vencedor=", vec[i])
tryCatch(expr = {evalWithTimeout(download.file(url,
destfile = paste0("C:/Users/Username/Desktop/example_file/",vec[i],".csv"),
mode="wb"), timeout=3)},
error=function(ex) cat("Timeout. Skipping.\n"))
print(i)
}