Я буду sh, чтобы масштабировать мой рабочий запрос API, чтобы запросить много идентификаторов, и сохранить его в хорошем прямоугольном angular фрейме данных.
Мне нужна помощь, чтобы понять, как я могу масштабировать свой код до взять много входных переменных, а затем, как их хранить.
Мой рабочий код выглядит следующим образом:
pacman::p_load(tidyverse,httr,jsonlite,purrr)
path <- "https://npiregistry.cms.hhs.gov/api/?"
request <- httr::GET(url = path,
query = list(version = "2.0",
number = 1154328938))
response <- content(request, as = "text", encoding = "UTF-8")
df <- jsonlite::fromJSON(response, flatten = TRUE) %>%
data.frame()
providerData <- df %>%
select(results.number,
results.basic.name,
results.basic.gender,
results.basic.credential,
results.taxonomies) %>%
unnest_wider(results.taxonomies) %>%
rename(Provider_NPI = results.number,
Provider_Name = results.basic.name,
Provider_Gender = results.basic.gender,
Provider_Credentials = results.basic.credential,
Provider_Taxonomy = desc,
Provider_State = state) %>%
select(-code,-license,-primary)
Теперь я sh запросю эти 4 идентификатора и сохраню их в том же формате данных, что и в примере выше.
Я попытался использовать lapply и создать свою собственную функцию, но я не до конца понимаю, как создавать объекты, в которых хранятся возвращаемые значения.
Моя функция выглядит следующим образом:
getNPI <- function(object) {
httr::GET(url = path,
query = list(version = "2.0",
number = object))
}
providerIDs <- c('1073666335',
'1841395357',
'1104023381',
'1477765634')
test <- lapply(providerIDs, getNPI)
Я почти уверен, что мне нужен какой-то объект, например список или фрейм данных, для хранения значений httr :: GET, но это где я падаю. Другая часть состоит в том, как извлечь соответствующие значения из возвращенных объектов и сохранить их в аккуратном фрейме данных.
Ваша помощь будет принята с благодарностью.