从json列表创建一个数据帧

问题描述 投票:1回答:1

我想在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“缺失,没有默认值”

如果有人知道某事......

json r
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.