В чем проблема с моим зацикленным запросом API? - PullRequest
0 голосов
/ 07 августа 2020

Я все еще ищу решение проблемы, указанной ниже, и был бы очень признателен даже за указание на то, где я могу ошибаться:

Я хочу создать набор данных, содержащий минимальные дневные температуры, усредненные за в течение летнего и зимнего сезона - и случаев лихорадки денге - для 400 городов с 2010 по 2020 год. Я использую API веб-сайта отчетности по денге для сбора этих данных, но хотел бы, чтобы oop менял каждый запрос с новым кодом муниципалитета 400 раз будет невероятно трудоемким.

Общий c API-запрос выглядит следующим образом:

url <- "https://info.dengue.mat.br/api/alertcity?"

geocode <- 3304557 **## MUNICIPALITY CODE**

disease <- "dengue" **## Website contains several Arboviruses, specifically need Dengue**

format <- "csv"

ew_start <- 1 **## This will change relative to seasons I need**

ew_end <- 52

ey_start <- 2017

ey_end <- 2018

cons1 <- paste0(url,"geocode=",geocode,"&disease=",disease,"&format=",format,"&ew_start=",ew_start,"&ew_end=",ew_end,"&ey_start=",ey_start,"&ey_end=",ey_end)
cons1

dados <- read_csv(cons1) %>% arrange(data,aps)

Пока что в попытке l oop, я написал:

geocode <- c(3304557, 3304556, 3304555, 3304554, 3304553)

url <- "https://info.dengue.mat.br/api/alertcity?"

for (geocode in 3304557:3304553){

cons1 <- paste0("geocode=",geocode,"&disease=",disease,"&format=",format,"&ew_start=",ew_start,"&ew_end=",ew_end,"&ey_start=",ey_start,"&ey_end=",ey_end)
cons1

T_result <-rep(NA, length(geocode)}

Приносим извинения, если это простой / плохо сформулированный вопрос, но я новичок в R и API и пока застрял.

Спасибо за любую помощь, которую вы можете предоставить.

*** С тех пор я безуспешно пытался использовать lapply - может ли кто-нибудь подсказать, где я ошибаюсь? **

dengue_data <- lapply (all_municipalities, funct ion (i) {</p>

Sys.sleep (1)

tmp <- GET (geocode = i, болезнь = "dengue", ew_start = "1", ew_end = "52", ey_start = "2017", ey_end = "2018", fmt = "csv") </p>

df <- as.data.frame (do.call (rbind, tmp)) </p>

return ( df)

})

  • Возврат: ДОЛЖЕН УКАЗАТЬ ОДИН URL ИЛИ ОБРАТИТЬ

*** ОБНОВЛЕНИЕ: Я теперь добавил 'url' в моя функция GET, показанная ниже ****

url <- "https://info.dengue.mat.br/api/alertcity?" </p>

dengue_data <- lapply (all_municipalities, function (i) {</p>

Sys.sleep (1)

tmp <- GET (url, geocode = i, болезнь = "dengue", </p>

ew_start = "1", ew_end = "52", ey_start = "2017", ey_end = "2018", fmt = "csv")

df <- as.data.frame (do.call (rbind, tmp)) </p>

return (df)

})

  • ВОЗВРАТ: Ошибка в rbind (deparse.level, ...): недопустимый аргумент списка: все переменные должны иметь одинаковую длину

  • Кто-нибудь знает, что это значит?

...