【发布时间】:2012-07-16 19:55:15
【问题描述】:
我刚刚学习 R,并且很难思考如何从列表中的对象中提取元素。我已经将一个 json 文件解析为 R 给我列表对象。但我不知道如何从那里从列表中提取各种 json 元素。这是解析 json 后我的数据如何显示的截断视图:
> #Parse data into R objects#
> list.Json= fromJSON(,final.name, method = "C")
> head(listJson,6)
[[1]]
[[1]]$contributors
NULL
[[1]]$favorited
[1] FALSE
...[truncating]...
[[5]]
[[5]]$contributors
NULL
[[5]]$favorited
[1] FALSE
我可以弄清楚如何为列表中的一个对象提取收藏夹数据
> first.object=listJson[1]
> ff=first.object[[1]]$favorited
> ff
[1] FALSE
但是我很困惑如何为列表中的所有对象提取收藏夹。我仔细研究了一下,这是正确的方法吗?我是否需要将上述代码放入 for...next 循环中?
【问题讨论】:
-
列表在 R 中有点令人困惑。它们实际上更类似于来自其他语言的哈希图/字典。看看stackoverflow.com/questions/2050790/… 以获得一些见解。
-
将 JSON 转换为
data.frame可能会很痛苦,尤其是在不能保证从一个对象到下一个对象的键相同的情况下。我喜欢@Jeff Allen 的回答,但是当你的缺失值是NULL而不是NA时要小心。 (如果您使用的是RJSONIO,您可以使用fromJSON(..., nullValue = NULL)控制默认值)。例如,sapply(listJson, "[[", "contributors")在其缺失值为NULL时返回一个列表,但在其缺失值为 'NA' 时返回一个向量。
标签: r