On Mon, Jan 16, 2012 at 10:15 AM, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: > On 12-01-16 10:34 AM, Marion Wenty wrote: >> >> Dear People, >> >> I have got the following example for a vector and the index of the TRUE >> element: >> >> Myvector<- c(FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE) >> which(Myvector) >> >> Now I would like to find out the same for a list: >> >> Mylist<- list(FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE) >> >> ... >> >> Does anyone know how to do this? > > > What are the possible values in your list? If it always contains TRUE and > FALSE and nothing else, then unlist() will work (as suggested by others). > If there are other possibilities, unlist() might mess up, e.g. > > unlist( list(TRUE, 1:3, FALSE) ) > > won't give a vector of length 3. In that case, > > which(sapply(MyList, isTRUE) )
Or if you're writing a function: which(vapply(MyList, isTRUE, logical(1))) which will work even if length(MyList) == 0 Hadley -- Assistant Professor / Dobelman Family Junior Chair Department of Statistics / Rice University http://had.co.nz/ ______________________________________________ R-help@r-project.org mailing list 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.