【发布时间】:2016-05-07 19:41:21
【问题描述】:
我正在尝试使用 R 将嵌套的 JSON 文件转换为二维数据框。
我的 JSON 文件具有嵌套结构。但是,不同级别的名称和属性是相同的。
{"name":"A", "value":"1", "c":
[{"name":"a1", "value":"11", "c":
[{"name":"a11", "value":"111"},
{"name":"a12", "value":"112"}]
},
{"name":"a2", "value":"12"}]
}
所需的数据集如下所示。虽然确切的列名可能不同。
name value c__name c_value c_c_name c_c_value
A 1 a1 11 a11 111
A 1 a1 11 a12 112
A 1 a2 12
到目前为止,我的代码将数据展平,但它似乎只适用于第一级(请参阅输出的屏幕截图)。
library(jsonlite)
json_file <- ' {"name":"A", "value":"1", "c":
[{"name":"a1", "value":"11", "c":
[{"name":"a11", "value":"111"},
{"name":"a12", "value":"112"}]
},
{"name":"a2", "value":"12"}]
}'
data <- fromJSON(json_file, flatten = TRUE)
View(data)
我尝试了多个包,包括 jsonlite 和 RJSONIO,我花了最后 5 个小时 5 个小时调试这个并尝试了各种在线教程,但没有成功。感谢您的帮助!
【问题讨论】:
-
您看过
purrr包吗?它在减少列表提取痛苦方面做得很好。
标签: json r recursion nested flatten