В R, извлечь часть объекта из списка

Я просто изучаю 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

Но я очень смущен тем, как извлечь привилегированные для всех объектов в списке. Я посмотрел на счастье, это правильный подход? Должен ли я поставить вышеуказанный код в следующий цикл?

Ответы

Ответ 1

sapply собирается применить некоторую функцию к каждому элементу вашего списка. В вашем случае вы хотите получить доступ к каждому элементу в (вложенном) списке. sapply, безусловно, способен на это. Например, если вы хотите получить доступ к первому ребенку каждого элемента в вашем списке:

sapply(listJson, "[[", 1)

Или, если вы хотите получить доступ к элементу с именем "favorited", вы можете использовать:

sapply(listJson, "[[", "favorited")

Обратите внимание, что оператор [ возьмет подмножество списка, с которым вы работаете. Поэтому, когда вы обращаетесь к myList[1], у вас все еще есть список, это просто длина 1. Однако, если вы ссылаетесь на myList[[1]], вы получите содержимое первого места в своем списке (которое может быть или не быть другим список). Таким образом, вы будете использовать оператор [[ в sapply, потому что вы хотите перейти к содержимому списка.