我是json数据的新手,需要帮助将数据解析到数据框中。
str(url)显示这是一个包含列表和数据框的列表。我搜索了互联网,但没有找到问题的简单解决方案..
library(jsonlite)
url <- fromJSON("http://data.ssb.no/api/v0/no/table/03886")
str(url)
我想将此作为我熟悉的数据框架。
df<-as.data.frame(url)
答案 0 :(得分:0)
鉴于JSON结构包含嵌套的key:value和key:arrays,您无法直接使用JSON数据获得简单的data.frame
。您需要访问特定组件并将其转换为data.frame
例如,在您提供的数据中,我们现在url
是一个列表
str(url)
# List of 2
# ...
# the two elements being
names(url)
# [1] "title" "variables"
所以我们可以访问这些元素
str(url$title)
# chr "Felte småvilt, etter region, småvilt og intervall (år)"
str(url$variables)
# 'data.frame': 4 obs. of 6 variables:
# $ code : chr "Region" "Smaviltjakt" "ContentsCode" "Tid"
# $ text : chr "region" "småvilt" "statistikkvariabel" "intervall (år)"
# $ values :List of 4
# ..$ : chr "0" "01" "02" "03" ...
# ..$ : chr "00" "01" "02" "03" ...
# ..$ : chr "Smaavilt"
# ..$ : chr "1991-1992" "1992-1993" "1993-1994" "1994-1995" ...
您现在必须弄清楚您想要的具体数据组件。
借用@ antoine-sac的评论,我们可以创建一个包含四个data.frames
的列表:
df_list = list();
for(i in 1:4) {
df_list[[url$variables$code[i]]] <- data.frame(val=url$variables$values[[i]],
description=url$variables$valueTexts[[i]])
}
最后;你应该熟悉列表,而不仅仅是data.frames。它们在R中很重要。