[R] list of complex objects?

Nick Matzke matzke at berkeley.edu
Thu May 27 06:21:16 CEST 2010


Thanks!  I tried that before but for some reason didn't 
notice that it was working correctly.

PS: How would I append another element to the list?  This 
doesn't work:

x = append(list_of_fits, fitJC1)

# still works, from original list construction
x[3]

# but this doesn't work
x[4]

Cheers!
Nick


Peter Langfelder wrote:
> c concatenates all arguments. For example, c(c(0,1,2), c(3,4,5)) gives
> a vector 0,1,2,3,4,5.
> Another example:
> 
>> c(list(a=c(0,1), b = c(2,3)), list(c = c(4,5), d = c(5,6)))
> $a
> [1] 0 1
> 
> $b
> [1] 2 3
> 
> $c
> [1] 4 5
> 
> $d
> [1] 5 6
> 
> So instead of a list of two lists, you get a single list with 4 components.
> 
> If you want to make a list of objects, use
> 
> list_of_fits = list(fitJC1, fitJC2, fitJC3)
> 
> HTH,
> 
> Peter
> 
> 
> On Wed, May 26, 2010 at 5:23 PM, Nick Matzke <matzke at berkeley.edu> wrote:
>>
>> Erik Iverson wrote:
>>> Nick Matzke wrote:
>>>> Hi all,
>>>>
>>>> If I would like to make a list of complex objects -- in my case,
>>>> phylogenetic trees, but it could be e.g. statistical results from something
>>>> like lm, or whatever -- how can I put them into a list?
>>>>
>>>> When I try the obvious methods, e.g. cat, append, list, etc., I seem to
>>>> get weird behaviors where R is trying to merge the subfields within the
>>>> objects or something.
>>>>
>>>> Any help much appreciated.  Cheers!!
>>>> Nick
>>>>
>>>>
>>> Perhaps you can give us a reproducible example that shows
>>>
>>> a) what you tried
>>> b) what happened
>>> c) what you expected to happen
>>>
>>
>> Hi!  Sorry, I should have done that initially.  Here's my problem:
>>
>> #====================
>> # example of the issue with lists of objects:
>>
>> library(ape)
>> library(phangorn)
>> example(NJ)
>>
>> # Jukes-Cantor (starting tree from NJ)
>> fitJC1 <- pml(tree, Laurasiatherian)
>>
>> # optimize edge length parameter
>> fitJC2 <- optim.pml(fitJC1)
>> fitJC2
>>
>> # search for a better tree using NNI rearrangements
>> fitJC3 <- optim.pml(fitJC2, optNni=TRUE)
>> fitJC3
>>
>> # Now, the function SH.test can allegedly take "objects of
>> # class 'pml' separated by commas, [or] a list containing
>> # such objects".  Since I'm going to have hundreds of these
>> # fits, I'd like to make submit a list of them to SH.test,
>> # something like this:
>>
>> list_of_fits = c(fitJC1, fitJC2, fitJC3)
>> SH.test(list_of_fits, B=100)
>>
>> # ...but "list of fits" is something weird, e.g.
>> (list_of_fits[1])
>>
>> #...does not return the same thing as:
>> (fitJC1)
>> #====================
>>
>>
>>
>>
>>
>>
>> --
>> ====================================================
>> Nicholas J. Matzke
>> Ph.D. Candidate, Graduate Student Researcher
>> Huelsenbeck Lab
>> Center for Theoretical Evolutionary Genomics
>> 4151 VLSB (Valley Life Sciences Building)
>> Department of Integrative Biology
>> University of California, Berkeley
>>
>> Graduate Student Instructor, IB200A
>> Principles of Phylogenetics: Systematics
>> http://ib.berkeley.edu/courses/ib200a/index.shtml
>>
>> Lab websites:
>> http://ib.berkeley.edu/people/lab_detail.php?lab=54
>> http://fisher.berkeley.edu/cteg/hlab.html
>> Dept. personal page:
>> http://ib.berkeley.edu/people/students/person_detail.php?person=370
>> Lab personal page: http://fisher.berkeley.edu/cteg/members/matzke.html
>> Lab phone: 510-643-6299
>> Dept. fax: 510-643-6264
>> Cell phone: 510-301-0179
>> Email: matzke at berkeley.edu
>>
>> Mailing address:
>> Department of Integrative Biology
>> 3060 VLSB #3140
>> Berkeley, CA 94720-3140
>>
>> -----------------------------------------------------
>> "[W]hen people thought the earth was flat, they were wrong. When people
>> thought the earth was spherical, they were wrong. But if you think that
>> thinking the earth is spherical is just as wrong as thinking the earth is
>> flat, then your view is wronger than both of them put together."
>>
>> Isaac Asimov (1989). "The Relativity of Wrong." The Skeptical Inquirer,
>> 14(1), 35-44. Fall 1989.
>> http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
>>
>> ______________________________________________
>> 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.
>>
> 
> ______________________________________________
> 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.
> 

-- 
====================================================
Nicholas J. Matzke
Ph.D. Candidate, Graduate Student Researcher
Huelsenbeck Lab
Center for Theoretical Evolutionary Genomics
4151 VLSB (Valley Life Sciences Building)
Department of Integrative Biology
University of California, Berkeley

Graduate Student Instructor, IB200A
Principles of Phylogenetics: Systematics
http://ib.berkeley.edu/courses/ib200a/index.shtml

Lab websites:
http://ib.berkeley.edu/people/lab_detail.php?lab=54
http://fisher.berkeley.edu/cteg/hlab.html
Dept. personal page: 
http://ib.berkeley.edu/people/students/person_detail.php?person=370
Lab personal page: 
http://fisher.berkeley.edu/cteg/members/matzke.html
Lab phone: 510-643-6299
Dept. fax: 510-643-6264
Cell phone: 510-301-0179
Email: matzke at berkeley.edu

Mailing address:
Department of Integrative Biology
3060 VLSB #3140
Berkeley, CA 94720-3140

-----------------------------------------------------
"[W]hen people thought the earth was flat, they were wrong. 
When people thought the earth was spherical, they were 
wrong. But if you think that thinking the earth is spherical 
is just as wrong as thinking the earth is flat, then your 
view is wronger than both of them put together."

Isaac Asimov (1989). "The Relativity of Wrong." The 
Skeptical Inquirer, 14(1), 35-44. Fall 1989.
http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm



More information about the R-help mailing list