]> git.donarmstrong.com Git - ape.git/blobdiff - R/mantel.test.R
a few changes...
[ape.git] / R / mantel.test.R
index 97041523e965a18c3e73d4c71bb9672555db6286..a23bc324de8af19ff2a84dacf0478908633e5714 100644 (file)
@@ -1,4 +1,4 @@
-## mantel.test.R (2011-06-22)
+## mantel.test.R (2011-11-10)
 
 ##   Mantel Test for Similarity of Two Matrices
 
@@ -18,20 +18,19 @@ mant.zstat <- function(m1, m2) sum(lower.triang(m1 * m2))
 
 lower.triang <- function(m)
 {
-    d <- dim(m)
-    if (d[1] != d[2]) print("Warning: non-square matrix")
+    if (!diff(dim(m))) print("Warning: non-square matrix")
     m[col(m) <= row(m)]
 }
 
-mantel.test <- function (m1, m2, nperm = 1000, graph = FALSE,
-                         alternative = "two.sided", ...)
+mantel.test <- function(m1, m2, nperm = 1000, graph = FALSE,
+                        alternative = "two.sided", ...)
 {
     alternative <- match.arg(alternative, c("two.sided", "less", "greater"))
     n <- nrow(m1)
     realz <- mant.zstat(m1, m2)
     nullstats <- replicate(nperm, mant.zstat(m1, perm.rowscols(m2, n)))
     pval <- switch(alternative,
-                   "two.sided" = 2 * sum(abs(nullstats) > abs(realz)),
+                   "two.sided" =  2 * min(sum(nullstats > realz), sum(nullstats < realz)),
                    "less" = sum(nullstats < realz),
                    "greater" = sum(nullstats > realz))
     pval <- pval / nperm