[Phylobase-devl] change root node from NA to 0
Peter Cowan
pdc at berkeley.edu
Thu Sep 24 02:05:20 CEST 2009
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)
One remaining question: getNode(NA) would return NA but getNode(0)
returns 0, is this the desired behavior?
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
More information about the Phylobase-devl
mailing list