0

我是 json 数据的新手,需要帮助将数据解开到数据框中。

str(url) 表明这是一个包含列表和数据框的列表。我搜索了互联网,但没有找到解决问题的简单方法。

library(jsonlite)

url <- fromJSON("http://data.ssb.no/api/v0/no/table/03886")

str(url)

我想把它作为我熟悉的数据框女巫。

 df<-as.data.frame(url)
4

1 回答 1

1

鉴于 JSON 结构包含嵌套的 key:value 和 key:arrays,您无法data.frame直接使用 JSON 数据获得简单的数据。您需要访问特定组件并将其转换为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 中很重要。

于 2016-06-29T05:42:46.063 回答