-## drop.tip.R (2009-06-23)
+## drop.tip.R (2009-09-09)
## Remove Tips in a Phylogenetic Tree
root.node <- which(phy$edge[, 2] == node)
start <- root.node + 1 # start of the clade looked for
anc <- phy$edge[root.node, 1] # the ancestor of 'node'
- next.anc <- which(phy$edge[-(1:start), 1] == anc) # find the next occurence of 'anc'
+ next.anc <- which(phy$edge[-(1:start), 1] <= anc) # find the next occurence of 'anc' or an 'older' node
keep <- if (length(next.anc)) start + 0:(next.anc[1] - 1) else start:Nedge
n <- length(oldNo.ofNewTips) # the new number of tips in the tree
- ## assumes that the ordering of tips is unchanged:
- phy$edge[TERMS, 2] <- 1:n
+ ## the tips may not be sorted in increasing order of their
+ ## in the 2nd col of edge, so no need to reorder $tip.label
+ phy$edge[TERMS, 2] <- rank(phy$edge[TERMS, 2])
## make new tip labels if necessary:
if (subtree || !trim.internal) {