我只是在学习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
Run Code Online (Sandbox Code Playgroud)
我可以弄清楚如何提取列表中的一个对象的收藏夹数据
> first.object=listJson[1]
> ff=first.object[[1]]$favorited
> ff
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
但我对如何为列表中的所有对象提取收藏非常困惑.我调查了一下,这是正确的做法吗?我需要将上面的代码放入for ... next循环吗?
Jef*_*len 34
sapply
将为列表中的每个元素应用一些函数.在您的情况下,您想要访问(嵌套)列表中的每个元素.sapply
当然能做到这一点.例如,如果要访问列表中每个元素的第一个子元素:
sapply(listJson, "[[", 1)
Run Code Online (Sandbox Code Playgroud)
或者,如果您想访问名为"favited"的项目,您可以使用:
sapply(listJson, "[[", "favorited")
Run Code Online (Sandbox Code Playgroud)
请注意,[
操作员将获取您正在使用的列表的子集.因此,当您访问时myList[1]
,您仍然有一个列表,它只是长度为1.但是,如果您引用myList[[1]]
,您将获得列表中第一个空格的内容(可能是也可能不是另一个列表).因此,您将[[
在sapply中使用运算符,因为您想要了解列表的内容.