Я все еще ищу решение проблемы, указанной ниже, и был бы очень признателен даже за указание на то, где я могу ошибаться:
Я хочу создать набор данных, содержащий минимальные дневные температуры, усредненные за в течение летнего и зимнего сезона - и случаев лихорадки денге - для 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, ...): недопустимый аргумент списка: все переменные должны иметь одинаковую длину
Кто-нибудь знает, что это значит?