On May 25, 2011, at 3:25 PM, Seth W Bigelow wrote:

I have a list that is made of lists of varying length. I wish to create a new vector that contains the last element of each list. So far I have used sapply to determine the length of each list, but I'm stymied at the part where I index the list to make a new vector containing only the last item
of each list

mylist = list(c(1,2,3),c("cat","dog"),c("x","y","z","zz")) # Create
list

last <- sapply(mylist,length) # Make vector with list lengths

last_only <- mylist[[1:length(mylist)]][last] # Crash and burn trying to
make new vector with last items!

If you wanted to apply the successive values of last using "[" to successive values of mylist there is a list-ish method via mapply:

> mapply("[", mylist, last)
[1] "3"   "dog" "zz"

`mapply` is also the function underlying `Vectorise`
--

David Winsemius, MD
West Hartford, CT

______________________________________________
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.

Reply via email to