# dunnTest

##### Dunn's Kruskal-Wallis Multiple Comparisons.

Performs Dunn's (1964) test of multiple comparisons following a significant Kruskal-Wallis test, possibly with a correction to control the experimentwise error rate. This is largely a wrapper for the `dunn.test`

function in dunn.test. Please see and cite that package.

##### Usage

`dunnTest(x, ...)`# S3 method for default
dunnTest(x, g, method = dunn.test::p.adjustment.methods[c(4,
2:3, 5:8, 1)], two.sided = TRUE, altp = two.sided, ...)

# S3 method for formula
dunnTest(x, data = NULL,
method = dunn.test::p.adjustment.methods[c(4, 2:3, 5:8, 1)],
two.sided = TRUE, altp = two.sided, ...)

# S3 method for dunnTest
print(x, dunn.test.results = FALSE, ...)

##### Arguments

- x
A numeric vector of data values or a formula of the form x~g.

- …
Not yet used.

- g
A factor vector or a (non-numeric) vector that can be coerced to a factor vector.

- method
A single string that identifies the method used to control the experimentwise error rate. See the list of methods in

`p.adjustment.methods`

in dunn.test.- two.sided
A single logical that indicates whether a two-sided p-value should be returned (

`TRUE`

; default) or not. See details.- altp
Same as

`two.sided`

. Allows similar code with the`dunn.test`

function in dunn.test.`two.sided`

is maintained because it pre-dates`altp`

.- data
A data.frame that minimally contains

`x`

and`g`

.- dunn.test.results
A single logical that indicates whether the results that would have been printed by

`dunn.test`

function in dunn.test are shown.

##### Details

This function performs “Dunn's” test of multiple comparisons following a Kruskal-Wallis test. Unadjusted one- or two-sided p-values for each pairwise comparison among groups are computed following Dunn's description as implemented in the `dunn.test`

function from dunn.test. These p-values may be adjusted using methods in the `p.adjustment.methods`

function in dunn.test.

This function is largely a wrapper for the `dunn.test`

function in dunn.test. Changes here are the possible use of formula notation, results not printed by the main function (but are printed in a more useful format (in my opinion) by the `print`

function), the p-values are adjusted by default with the “holm” method, and two-sided p-values are returned by default. See `dunn.test`

function in dunn.test for a more details underlying these computations.

##### Value

A list with three items -- `method`

is the long name of the method used to control the experimentwise error rate, `dtres`

is the strings that would have been printed by the `dunn.test`

function in dunn.test, and `res`

is a data.frame with the following variables:

Comparison: Labels for each pairwise comparison.

Z: Values for the Z test statistic for each comparison.

P.unadj: Unadjusted p-values for each comparison.

P.adj: Adjusted p-values for each comparison.

##### Note

The data.frame will be reduced to only those rows that are complete cases for `x`

and `g`

. In other words, rows with missing data for either `x`

or `g`

are removed from the analysis.

There are a number of functions in other packages that do similar analyses.

The results from `DunnTest`

match the results (in a different format) from the `dunn.test`

function from dunn.test.

The `pairw.kw`

function from the asbio package performs the Dunn test with the Bonferroni correction. The `pairw.kw`

also provides a confidence interval for the difference in mean ranks between pairs of groups. The p-value results from `DunnTest`

match the results from `pairw.kw`

.

The `posthoc.kruskal.nemenyi.test`

function from the PMCMR package uses the “Nemenyi” (1963) method of multiple comparisons.

The `kruskalmc`

function from the pgirmess package uses the method described by Siegel and Castellan (1988).

It is not clear which method the `kruskal`

function from the agricolae package uses. It does not seem to output p-values but it does allow for a wide variety of methods to control the experimentwise error rate.

##### References

Dunn, O.J. 1964. Multiple comparisons using rank sums. Technometrics 6:241-252.

##### See Also

See `kruskal.test`

, `dunn.test`

in dunn.test, `posthoc.kruskal.nemenyi.test`

in PMCMR, `kruskalmc`

in pgirmess, and `kruskal`

in agricolae.

##### Examples

```
# NOT RUN {
## pH in four ponds data from Zar (2010)
ponds <- data.frame(pond=as.factor(rep(1:4,each=8)),
pH=c(7.68,7.69,7.70,7.70,7.72,7.73,7.73,7.76,
7.71,7.73,7.74,7.74,7.78,7.78,7.80,7.81,
7.74,7.75,7.77,7.78,7.80,7.81,7.84,NA,
7.71,7.71,7.74,7.79,7.81,7.85,7.87,7.91))
ponds2 <- ponds[complete.cases(ponds),]
# non-formula usage (default "holm" method)
dunnTest(ponds2$pH,ponds2$pond)
# formula usage (default "holm" method)
dunnTest(pH~pond,data=ponds2)
# other methods
dunnTest(pH~pond,data=ponds2,method="bonferroni")
dunnTest(pH~pond,data=ponds2,method="bh")
dunnTest(pH~pond,data=ponds2,method="none")
# one-sided
dunnTest(pH~pond,data=ponds2,two.sided=FALSE)
# warning message if incomplete cases were removed
dunnTest(pH~pond,data=ponds)
# print dunn.test results
tmp <- dunnTest(pH~pond,data=ponds2)
print(tmp,dunn.test.results=TRUE)
# }
```

*Documentation reproduced from package FSA, version 0.8.19, License: GPL (>= 2)*