【发布时间】:2018-07-25 19:43:19
【问题描述】:
library(jsonlite)
test <-as.dataframe(fromJSON('http://api.worldbank.org/v2/countries/all/indicators/SH.STA.ACSN?format=json')[2])
names(test)
不过,貌似列多了,比如“country”列实际上有“country.value”和“country.id”列。这很烦人,因为“country.value”似乎不存在,因此以下代码返回错误,指出该列不在数据框测试中。我只想保留 country.value。我该如何解决这个问题?和 JSON 在 R 中返回数据的方式有关系吗?
test$country.value
【问题讨论】:
-
有一个封装了该 API 的包:
library(WDI); test <- WDI(indicator = 'SH.STA.ACSN') -
谢谢。但似乎 WDI 包自 2012 年以来没有更新数据。我想使用最新的数据并使用 json api 可能是唯一的方法。
-
它调用 JSON API。如果设置
end,则有到2015年的数据:test <- WDI(indicator = 'SH.STA.ACSN', end = 2015) -
谢谢!有用。我仍然想了解为什么我发布的问题存在并想知道解决方案。还是像我尝试的那样清理 JSON API 数据通常过于复杂?
-
jsonlite::fromJSON正在返回一个 data.frame,其中包含嵌套 data.frames 的列表列。你可以打开它们,但是很麻烦。
标签: json r api dataframe columnname