[Phylobase-devl] change root node from NA to 0

Ben Bolker bolker at ufl.edu
Thu Sep 24 02:08:04 CEST 2009


Peter Cowan wrote:
> Okay, I think this is finished.  For the time being I've uploaded the  
> result to a branch called edgesNAto0.  It is ready to be merged if  
> people approve.
> 
> In a testament to the nice abstractions of the package, most of the  
> changes are actually to examples and unit tests that use hand made  
> edge matrices.
> 
> It does make some code slightly less elegant e.g.
> 
> -    singletons <- which(tabulate(na.omit(edge.new[,1]))==1)
> +    singletons <- which(tabulate(edge.new[edge.new[, 1] != 0, 1])==1)

  Yes, although I guess we could write a zero.omit() helper function if
we wanted to ...

> 
> One remaining question: getNode(NA) would return NA but getNode(0)  
> returns 0, is this the desired behavior?

   NA feels more intuitive to me, both are reasonable, I haven't thought
through consequences very much.

> 
> Cheers
> 
> Peter
> 
> On Sep 21, 2009, at 4:23 PM, Jim Regetz wrote:
> 
>> Fine with me. One suggestion: In recent weeks I have changed several  
>> instances of this sort of thing:
>>  edges(x)[which(is.na(edges(x)[,1])), ]
>>
>> to this:
>>  edges(x, drop.root=TRUE)
>>
>> which accomplishes the same thing but leaves the implementation  
>> details to the edges method. I know for sure there are still several  
>> instances of the former in the code base. I suggest making sure the  
>> latter form is used everywhere. It would then be easy enough to  
>> update the edges method to match a new 0 encoding for root nodes.
>>
>> On that note, would it further simplify this transition to add an  
>> analogous drop.root=TRUE argument to some of the other edge-related  
>> phylo4 methods? It would be most obviously beneficial in the case of  
>> edgeLength (and thus probably sumEdgeLength to match), but also  
>> possibly edgeLabels, edgeId, and maybe even nEdges. Just a thought.
>>
>> Jim
>>
>>
>> Peter Cowan wrote:
>>> Given that significant changes are still fair game, I'd like to   
>>> propose changes the root edge from having NA as the ancestor to 0  
>>> as  the ancestor.
>>> I'd be willing to do the lifting for this one, and could probably  
>>> get  it done around the same time the unification gets finished up.
>>> I found myself having to work around the NA issue in several  
>>> places  where 0 wouldn't have been a problem.  Does anyone have a  
>>> case where  NA is superior to 0 in the edge matrix?
>>> Peter
>>> _______________________________________________
>>> Phylobase-devl mailing list
>>> Phylobase-devl at lists.r-forge.r-project.org
>>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/phylobase-devl
> 
> _______________________________________________
> Phylobase-devl mailing list
> Phylobase-devl at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/phylobase-devl


-- 
Ben Bolker
Associate professor, Biology Dep't, Univ. of Florida
bolker at ufl.edu / www.zoology.ufl.edu/bolker
GPG key: www.zoology.ufl.edu/bolker/benbolker-publickey.asc

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
Url : http://lists.r-forge.r-project.org/pipermail/phylobase-devl/attachments/20090923/a0eba5f2/attachment.pgp 


More information about the Phylobase-devl mailing list