目的 pairwise.t.test を土台として,代表値の差の多重比較を行う 使用法 pairwise.wilcox.test <- function (x, g, p.adjust.method = p.adjust.methods, paired = FALSE, exact=TRUE, ...) 引数 exact 同順位がある場合に coin ライブラリの wilcox_tets で正確な P 値を得る(デフォルトで TRUE) それ以外の引数は,pairwise.t.test の引数に準ずる ソース インストールは,以下の 1 行をコピーし,R コンソールにペーストする source("http://aoki2.si.gunma-u.ac.jp/R/src/pairwise.wilcox.test.R", encoding="euc-jp") # 代表値の差の多重比較(対比較) pairwise.wilcox.test <- function (x, g, p.adjust.method = p.adjust.methods, paired = FALSE, exact=TRUE, ...) { DNAME <- paste(deparse(substitute(x)), "and", deparse(substitute(g))) g <- factor(g) p.adjust.method <- match.arg(p.adjust.method) METHOD <- if (paired) "paired wicoxon tests" else "wilcoxon tests" compare.levels <- function(i, j) { xi <- x[as.integer(g) == i] xj <- x[as.integer(g) == j] if (paired) { ok <- complete.cases(xi, xj) xi <- xi[ok] xj <- xj[ok] } else { xi <- xi[!is.na(xi)] xj <- xj[!is.na(xj)] } if (exact && !paired) { library(coin) x <- c(xi, xj) g <- factor(rep(1:2, c(length(xi), length(xj)))) pvalue(wilcox_test(x ~ g, distribution="exact")) } else wilcox.test(xi, xj, paired = paired, ...)$p.value } PVAL <- pairwise.table(compare.levels, levels(g), p.adjust.method) ans <- list(method = METHOD, data.name = DNAME, p.value = PVAL, p.adjust.method = p.adjust.method) class(ans) <- "pairwise.htest" ans } 使用例 > attach(airquality) The following object(s) are masked _by_ .GlobalEnv : Month > Month <- factor(Month, labels = month.abb[5:9]) > pairwise.wilcox.test(Ozone, Month) Pairwise comparisons using wilcoxon tests data: Ozone and Month May Jun Jul Aug Jun 0.57884 - - - Jul 0.00011 0.07103 - - Aug 0.00055 0.11668 1.00000 - Sep 0.47271 1.00000 0.00423 0.01900 P value adjustment method: holm > pairwise.t.test(Ozone, Month) Pairwise comparisons using t tests with pooled SD data: Ozone and Month May Jun Jul Aug Jun 1.00000 - - - Jul 0.00026 0.05113 - - Aug 0.00019 0.04987 1.00000 - Sep 1.00000 1.00000 0.00488 0.00388 P value adjustment method: holm > pairwise.wilcox.test(Ozone, Month, p.adj = "bonf") Pairwise comparisons using wilcoxon tests data: Ozone and Month May Jun Jul Aug Jun 1.00000 - - - Jul 0.00011 0.11838 - - Aug 0.00061 0.23336 1.00000 - Sep 1.00000 1.00000 0.00528 0.02715 P value adjustment method: bonferroni > pairwise.t.test(Ozone, Month, p.adj = "bonf") Pairwise comparisons using t tests with pooled SD data: Ozone and Month May Jun Jul Aug Jun 1.00000 - - - Jul 0.00029 0.10225 - - Aug 0.00019 0.08312 1.00000 - Sep 1.00000 1.00000 0.00697 0.00485 P value adjustment method: bonferroni > detach()