2015-10-07 125 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