X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=R%2Funique.multiPhylo.R;h=2887c0d1f205fe8b862b249339ca05ea4d8b79d8;hb=06c3113db74a7cfa54c15a6f18163cd9b2c1f6db;hp=a39ffdffcc9bcf5dcae47e3a00a06064b04a91ae;hpb=58c10f2bc11baf46563dc5541181bb97d0956ecb;p=ape.git diff --git a/R/unique.multiPhylo.R b/R/unique.multiPhylo.R index a39ffdf..2887c0d 100644 --- a/R/unique.multiPhylo.R +++ b/R/unique.multiPhylo.R @@ -1,4 +1,4 @@ -## unique.multiPhylo.R (2008-02-06) +## unique.multiPhylo.R (2008-06-09) ## Revomes Duplicate Trees from a List @@ -12,18 +12,18 @@ unique.multiPhylo <- function(x, incomparables = FALSE, use.tip.label = TRUE, ...) { n <- length(x) - keep <- !logical(n) + keep <- 1L for (i in 2:n) { - j <- 1 - while (j < i) { - if (all.equal(x[[j]], x[[i]], + already.seen <- FALSE + for (s in x[keep]) { + if (all.equal(s, x[[i]], use.edge.length = use.edge.length, use.tip.label = use.tip.label)) { - keep[i] <- FALSE + already.seen <- TRUE break } - j <- j + 1 } + if (!already.seen) keep <- c(keep, i) } x[keep] }