2015-10-07 56 views
0

我已经通过jsonlite将.json文件中的数据导入到R中。不幸的是,尽管数据包含多个类别,但数据显示为“List of 1”。从R中jsonlite解析列表中提取元素

library(jsonlite) 
wimbledon <- from JSON("wimbledon.json",flatten=TRUE) 

我碰到下面当我在全球环境中打开温网:

wimbledon      List of 1 
graph_data: 'data.frame': 1 obs. of 2 variables: 
..$ term:chr "wimbledon" 
..$data: List of 1 
.. ..$: 'data.frame': 165 obs. of 3 variables: 
.. .. ..$ matches : int [1:165] 0 0 0 0 0 0 0 0 ... 
.. .. ..$ year : int [1:165] 1851 1852 1853 1854 ... 

我的问题是,有没有只引用了$比赛和$一年,我会做任何简单的方法一个使用温布尔顿$匹配和温布尔顿年的数据框?我熟悉使用wimbledon [[n]]提取列表中的某个元素。然而,这里的问题是,我似乎已经将所有内容都解析成jsonlite中的一个列表。道歉,我不能添加一个可重复的例子。任何帮助你可以给我提取“匹配”和“年”列作为单独的数据框列将不胜感激。

+1

试试'wimbledon $ graph_data $ data [[1]] $ matches'。数据的结构很有趣 - 我不能用一行('graph_data')重新创建data.frame,其中第二列是列表,我不认为这是允许的。 – mattdevlin

+0

@mattdevlin非常感谢你!这工作完美。是的,我也对结构感到困惑,但不知怎的,它似乎是可能的。请添加您的评论作为答案,我会接受 – RichS

回答

1

当列表中有未命名的值时,例如$: 'data.frame': 165 obs. of 3 variables:,需要在var[[n]]语法,因此

wimbledon$graph_data$data[[1]]$matches 

wimbledon$graph_data$data[[1]]$year 

将返回比赛和年。

+0

非常感谢!丰富 – RichS