[R] Manipulating lists

Christian Arnold
Mon, 17 Nov 2008 03:56:35 -0000

Hello R-Community,

I am pretty new to R and I am fascinated what R can do! I am doing
phylogenetic analysis in R, and my current project includes two problems
that I am unable to solve, unfortunately. I am hoping that someone knows
an easy, and R-typical solution, any help would be appreciated.
Specifically, I have the following two problems:

1) I am reading in all the files from a directory using file_list <-
list.files(). It works, of course, however, I want to restrict file_list
to files that end with ".nex". Thus, I want to remove some files from
this list. I read that I can do something like file_list <-
file_list[condition]. I do not know how to express my condition here,
unfortunately. Pseudo code would be something like file_list <-
file_list[ends with ".nex"]

2) A slightly more complicated problem, at least I think that. I have
two lists, list1 and list2. list1 contains some elements (characters
such as "species1"). list2 contains also species names, including all
of
list1, but also species that are not part of list1. I need a way to
create a list that contains ONLY those elements that are in list2, but
not in list1.
For example: list1 =
c("s1","s3","s4","s7"), list2 =
c("s1","s2","s3","s4","s5","s6","s7"),
now I need a way to create the
list list3 = c("s2","s5","s6"). Any ideas? I am
not able to find the
appropriate function...

Thanks
Christian