-## DNA.R (2008-12-22)
+## DNA.R (2009-05-19)
## Manipulations and Comparisons of DNA Sequences
-## Copyright 2002-2008 Emmanuel Paradis
+## Copyright 2002-2009 Emmanuel Paradis
## This file is part of the R-package `ape'.
## See the file ../COPYING for licensing issues.
if (length(i)) x[-i] else x
}
- if (class(x) != "DNAbin") x <- as.DNAbin(x)
+ if (!inherits(x, "DNAbin")) x <- as.DNAbin(x)
if (is.matrix(x)) {
n <- dim(x)[1]
y <- vector("list", n)
for (i in 1:n) y[[i]] <- x[i, ]
+ names(y) <- rownames(x)
x <- y
rm(y)
}
"[.DNAbin" <- function(x, i, j, drop = TRUE)
{
+ oc <- oldClass(x)
class(x) <- NULL
if (is.matrix(x)) {
if (nargs() == 2 && !missing(i)) ans <- x[i]
if (missing(i)) i <- 1:length(x)
ans <- x[i]
}
- structure(ans, class = "DNAbin")
+ class(ans) <- oc
+ ans
}
as.matrix.DNAbin <- function(x, ...)
{
- if (is.matrix(x)) return(x)
if (is.list(x)) {
if (length(unique(unlist(lapply(x, length)))) != 1)
stop("DNA sequences in list not of the same length.")
ans
}
+c.DNAbin <- function(..., recursive = FALSE)
+ structure(NextMethod("c"), class = "DNAbin")
+
print.DNAbin <- function(x, ...)
{
n <- 1 # <- if is.vector(x)