[R] Subsetting a list of lists using lapply

Aron Lindberg aron.lindberg at case.edu
Thu Feb 19 20:45:54 CET 2015


Hi Everyone,


I'm working on a thorny subsetting problem involving list of lists. I've put a dput of the data here:


	https://gist.githubusercontent.com/aronlindberg/b916dee897d051ac5be5/raw/a78cbf873a7e865c3173f943ff6309ea688c653b/dput


I can get one intense of the element I want this way:


	> input[[67]]$content[[1]]$sha
	[1] "58cf43ecdc1beb7e1043e9de612ecc817b090f15"


However, I need to use a lapply function to loop over all of the items of the list. I've tried something like this, but it doesn't work:


	get_shas <- function(input){
	x <- sapply(input, "[[", "content")
	y <- sapply(x, "[[", "sha")
	return(y)
	}


	sha_lists <- lapply(commit_lists, get_shas)


However, this doesn't work. When I run each of the lapply commands "manually" it returns NULL for every list, and when I run the whole apply function it says: 


	Error in FUN(X[[1L]], ...) : subscript out of bounds


I've tried reading the sections on lists and subsetting in Hadley's Advanced R, but I still cannot figure it out. Can anyone help or offer a pointer?


Best,
Aron


-- 
Aron Lindberg


Doctoral Candidate, Information Systems
Weatherhead School of Management 
Case Western Reserve University
aronlindberg.github.io
	[[alternative HTML version deleted]]



More information about the R-help mailing list