[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