On 20/02/15 08:45, Aron Lindberg wrote:
Hi Everyone,
I'm working on a thorny subsetting problem involving list of lists.
If you think this is "thorny" you ain't seen nothin' yet!
But note that you've got a list of lists of lists ... i.e. the nesting
is at least 3 deep.
I've put a dput of the data here:
https://gist.githubusercontent.com/aronlindberg/b916dee897d051ac5be5/raw/a78cbf873a7e865c3173f943ff6309ea688c653b/dput
Thank you for creating a reproducible example.
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?
At least part of the problem is that for some values of "i"
input[[i]]$content[[1]] is a list (with an entry named "sha") and
sometimes it is a character vector.
I don't follow your function get_shas() completely, so I started from
scratch:
foo <- function (x){
sapply(x,function(y){
z <- y$content[[1]]
if(is.list(z)) z$sha else NA
})
}
I find that foo(input) gives a vector of length 100, 81 entries of which
are NA. Entry number 67 at least agrees with what was shown in your email.
HTH
cheers,
Rolf Turner
--
Rolf Turner
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276
Home phone: +64-9-480-4619
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.