【发布时间】:2020-04-30 23:22:15
【问题描述】:
我希望扩展我的工作 API 查询以查询多个 ID 并将其存储在一个漂亮的矩形数据框中。
我需要一些帮助来了解如何扩展我的代码以获取许多输入变量以及如何存储它们。
我的工作代码如下:
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)
我现在希望查询这 4 个 ID,并将它们以与上例相同的数据格式存储。
我尝试过使用 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 的值,但这是我失败的地方。另一部分是如何从返回的对象中提取适当的值并将它们存储在一个整洁的数据框中。
您的帮助将不胜感激。
【问题讨论】: