我希望在R 的数据框中转换json中的数据。我尝试使用包data.tree,但我只得到一个只有NA ...的data.frame
library(dplyr)
library(jsonlite)
library(data.tree)
library(magrittr)
data<-fromJSON("http://ec.europa.eu/eurostat/wdds/rest/data/v2.1/json/en/nama_gdp_c?precision=1&geo=EU28&unit=EUR_HAB&time=2010&time=2011&indic_na=B1GM")
repos<-as.Node(data)
repos %>% ToDataFrameTable(valeur=function(x) x$repos$value,annee= function(x) x$repos$dimension$time$category$label)
我也试过了:
repos %>% ToDataFrameTable(valeur=function(x) x$value,annee= function(x) x$dimension$time$category$label)
但这里只有两列数据为空
我直接尝试了这个
as.data.frame(valeur=data$value,annee=data$dimension$time$category$label)
但我得到了这个: “as.data.frame中的错误(valeur = data $ value,annee = data $ dimension $ time $ category $ label):缺少参数”x“,没有默认值”
如果有人知道某事......
答案 0 :(得分:0)
这个怎么样?
library(rjson)
js <- fromJSON(file="http://ec.europa.eu/eurostat/wdds/rest/data/v2.1/json/en/nama_gdp_c?precision=1&geo=EU28&unit=EUR_HAB&time=2010&time=2011&indic_na=B1GM")
df <- data.frame(years=stack(js$dimension$time$category$label)$value,
value=stack(js$value)$value,
country=stack(js$dimension$geo$category$label)$value)
df
输出是:
years value country
1 2010 24400 European Union (28 countries)
2 2011 25100 European Union (28 countries)