[R] Accessing elements of a list

David Winsemius dwinsemius at comcast.net
Wed May 25 21:29:04 CEST 2011


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!
>
> How do I do this last step?

 > lapply(mylist, tail, 1)
[[1]]
[1] 3

[[2]]
[1] "dog"

[[3]]
[1] "zz"

 > unlist(lapply(mylist, tail, 1))
[1] "3"   "dog" "zz"

>
>
> Dr. Seth  W. Bigelow
> Biologist, USDA-FS Pacific Southwest Research Station
> 1731 Research Park Drive, Davis California
> sbigelow at fs.fed.us /  ph. 530 759 1718
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list