Предположим, что у нас есть вектор, мы можем достаточно просто lapply
, sapply
или map
на 1 элемент за раз.
Есть ли способ сделать то же самое для групп из (> 1) элементов вектора?
Пример
Предположим, мы создаем вызовы API, добавляя к URL-адресу user_identifier
s через запятую, например:
user_identifiers <- c("0011399", "0011400", "0013581", "0013769", "0013770", "0018374",
"0018376", "0018400", "0018401", "0018410", "0018415", "0018417",
"0018419", "0018774", "0018775", "0018776", "0018777", "0018778",
"0018779", "0021627", "0023492", "0023508", "0023511", "0023512",
"0024120", "0025672", "0025673", "0025675", "0025676", "0028226",
"0028227", "0028266", "0028509", "0028510", "0028512", "0028515",
"0028518", "0028520", "0028523", "0029160", "0033141", "0034586",
"0035035", "0035310", "0035835", "0035841", "0035862", "0036503",
"0036580", "0036583", "0036587", "0037577", "0038582", "0038583",
"0038587", "0039727", "0039729", "0039731", "0044703", "0044726"
)
get_data <- function(user_identifier) {
url <- paste0("https://www.myapi.com?userIdentifier=",
paste0(user_identifier, collapse=","))
fromJSON(url)
}
В приведенном выше примере get_data(user_identifiers)
будет возвращать ответ API для всех 60 user_identifier
с одним запросом.
Но предположим, что API принимает максимум 10 идентификаторов одновременно (поэтому мы не можем сделать все 60 одновременно).
Простым решением может быть просто map
/ lapply
/ sapply
для каждого элемента, например, sapply(get_data, user_identifiers
- это будет нормально работать - однако мы сделаем 60 вызовов API, когда все мы действительно нужно 6. Если бы мы могли map
/ lapply
/ sapply
по группам из 10 одновременно; это было бы идеально
Вопрос
Существует ли элегантный способ map
/ lapply
/ sapply
над группами из n элементов одновременно (где п> 1)?