r语言 - 每次迭代后保留所有变量



使用下面的代码片段可以迭代json格式的两个api调用

在循环结束时,有一个命令将json转换为数据帧

如果特定变量中的值在特定迭代中不存在,如何可能在每次迭代中保留所有这些变量并填充NA ?

library(jsonlite)
library(httpuv)
library(httr)
myapp <- oauth_app(appname = "insert_your_credentials",
key = "insert_your_credentials",
secret = "insert_your_credentials")
github_token <- oauth2.0_token(oauth_endpoints("github"), myapp)

gtoken <- config(token = github_token)
df <- data.frame(link = c("https://api.github.com/search/commits?q=%22image%22+AND+%22covid%22?page=1&per_page=100", "https://api.github.com/search/commits?q=%22image%22+AND+%22covid%22?page=2&per_page=100"))

for (i in 1:nrow(df)) {
req <- GET(df$link[i])

# Extract content from a request
json1 = content(req)

# Convert to a data.frame

char <- rawToChar(req$content)
dfcollection <- jsonlite::fromJSON(char)

}

可以用purrr中的tryCatchpossibly包裹。下面的代码使用possibly

library(purrr)
library(jsonlite)
convertToJSON <- function(x)
{
req <- GET(x)

# Extract content from a request
json1 = content(req)

# Convert to a data.frame

char <- rawToChar(req$content)
dfcollection <- jsonlite::fromJSON(char)
return(dfcollection)
}
pconvertToJSON <- possibly(convertToJSON, otherwise = NA)
out <- map(df$link, pconvertToJSON)

相关内容

  • 没有找到相关文章

最新更新