У меня есть задача, которая требует много вызовов API в неделю.Я хотел бы добавить все эти данные вместе с кратким кодом через purrr
, но мне трудно заставить Sys.sleep
работать в моей функции.
Ниже приведены некоторые поддельные данные.Я притворяюсь, что это бэкэнд API:
#call 1
week1 <- as_tibble(list(week = rep(1,7),value = rnorm(7,0,1)))
#call 2
week2 <- as_tibble(list(week = rep(2,7),value = rnorm(7,0,1)))
#call 3
week3 <- as_tibble(list(week = rep(3,7),value = rnorm(7,0,1)))
#append
pretend_full_api_data <- bind_rows(week1, week2, week3)
Эта функция работает
by_api_call <- function(weeknumber){
weeki <- pretend_full_api_data %>%
filter(week == weeknumber)
}
seq(from = 1, to = 3) %>%
map_df(~by_api_call(.))
Проблема в том, что API часто требует времени ожидания.Поэтому я попытался изменить следующим образом:
by_api_call <- function(weeknumber){
weeki <- pretend_full_api_data %>%
filter(week == weeknumber)
Sys.sleep(2) #required sleep for API calls
}
seq(from = 1, to = 3) %>%
map_df(~by_api_call(.))
Приведенный выше код возвращает 0 rows
.В чем проблема с вышеуказанной функцией?