我正在学习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
但是我非常困惑如何提取列表中所有对象的收藏夹。我已经研究了sappily,这是正确的方法吗?我需要将上面的代码放入for...next循环中吗?
data.frame
可能很麻烦,特别是当一个对象到另一个对象的键不能保证相同时。我喜欢@Jeff Allen的答案,但是当你的缺失值是NULL
而不是NA
时要小心。(如果你使用的是RJSONIO
,你可以使用fromJSON(..., nullValue = NULL)
来控制默认值)。例如,当其缺失值为NULL
时,sapply(listJson, "[[", "contributors")
返回一个列表,但当其缺失值为'NA'时,它返回一个向量。 - lockedoff