in R, extract part of object from list

r

Solution

`sapply` is going to apply some function to every element in your list. In your case, you want to access each element in a (nested) list. `sapply` is certainly capable of this. For instance, if you want to access the first child of every element in your list:

sapply(listJson, "[[", 1)

Or if you wanted to access the item named "favorited", you could use:

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

Note that the `[` operator will take a subset of the list you're working with. So when you access `myList[1]`, you still have a list, it's just of length 1. However, if you reference `myList[[1]]`, you'll get the contents of the first space in your list (which may or may not be another list). Thus, you'll use the `[[` operator in sapply, because you want to get down to the contents of the list.

Problem

I'm just learning R and having a hard time wrapping my head around how to extract elements from objects in a list. I've parsed a json file into R giving me list object. But I can't figure out how, from there, to extract various json elements from the list. here's a truncated look at how my data appears after parsing the 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 ``` I can figure out how to extract the favorites data for one of the objects in the list ``` > first.object=listJson[1] > ff=first.object[[1]]$favorited > ff [1] FALSE ``` But I'm very confused about how to extract favorited for all objects in the list. I've looked into sappily, is that the correct approach? Do I need to put the above code into a for...next loop?

Original source

Related problems