Provides a pipe-friendly framework to performs one and two sample Wilcoxon tests. Read more: Wilcoxon in R.
wilcox_test(
data,
formula,
comparisons = NULL,
ref.group = NULL,
p.adjust.method = "holm",
paired = FALSE,
exact = NULL,
alternative = "two.sided",
mu = 0,
conf.level = 0.95,
detailed = FALSE
)
pairwise_wilcox_test(
data,
formula,
comparisons = NULL,
ref.group = NULL,
p.adjust.method = "holm",
detailed = FALSE,
...
)
a data.frame containing the variables in the formula.
a formula of the form x ~ group
where x
is a
numeric variable giving the data values and group
is a factor with
one or multiple levels giving the corresponding groups. For example,
formula = TP53 ~ cancer_group
.
A list of length-2 vectors specifying the groups of
interest to be compared. For example to compare groups "A" vs "B" and "B" vs
"C", the argument is as follow: comparisons = list(c("A", "B"), c("B",
"C"))
a character string specifying the reference group. If specified, for a given grouping variable, each of the group levels will be compared to the reference group (i.e. control group).
If ref.group = "all"
, pairwise two sample tests are performed for
comparing each grouping variable levels against all (i.e. basemean).
method to adjust p values for multiple comparisons. Used when pairwise comparisons are performed. Allowed values include "holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", "none". If you don't want to adjust the p value (not recommended), use p.adjust.method = "none".
a logical indicating whether you want a paired test.
a logical indicating whether an exact p-value should be computed.
a character string specifying the alternative
hypothesis, must be one of "two.sided"
(default),
"greater"
or "less"
. You can specify just the initial
letter.
a number specifying an optional parameter used to form the null hypothesis.
confidence level of the interval.
logical value. Default is FALSE. If TRUE, a detailed result is shown.
other arguments to be passed to the function
wilcox.test
.
return a data frame with some of the following columns:
.y.
: the y variable used in the test.
group1,group2
: the compared groups in the pairwise tests.
n,n1,n2
: Sample counts.
statistic
: Test statistic used
to compute the p-value.
p
: p-value.
p.adj
: the
adjusted p-value.
method
: the statistical test used to compare
groups.
p.signif, p.adj.signif
: the significance level of
p-values and adjusted p-values, respectively.
estimate
: an
estimate of the location parameter (Only present if argument detailed
= TRUE
). This corresponds to the pseudomedian (for one-sample case) or to
the difference of the location parameter (for two-samples case).
The pseudomedian of a distribution F
is the median of the
distribution of (u+v)/2
, where u
and v are independent, each
with distribution F
. If F
is symmetric, then the pseudomedian
and median coincide.
Note that in the two-sample case the estimator for the difference in location parameters does not estimate the difference in medians (a common misconception) but rather the median of the difference between a sample from x and a sample from y.
conf.low,
conf.high
: a confidence interval for the location parameter. (Only present
if argument conf.int = TRUE.)
The returned object has an attribute called args, which is a list holding the test arguments.
- pairwise_wilcox_test()
applies the standard two sample
Wilcoxon test to all possible pairs of groups. This method calls the
wilcox.test()
, so extra arguments are accepted.
- If a list of comparisons is specified, the result of the pairwise tests is filtered to keep only the comparisons of interest.The p-value is adjusted after filtering.
- For a grouped data, if pairwise test is performed, then the p-values are adjusted for each group level independently.
- a nonparametric confidence interval and an estimator for the pseudomedian
(one-sample case) or for the difference of the location parameters
x-y
is computed, where x and y are the compared samples or groups.
The column estimate
and the confidence intervals are displayed in the
test result when the option detailed = TRUE
is specified in the
wilcox_test()
and pairwise_wilcox_test()
functions. Read more
about the calculation of the estimate in the details section of the R base
function wilcox.test()
documentation by typing ?wilcox.test
in
the R console.
wilcox_test()
: Wilcoxon test
pairwise_wilcox_test()
: performs pairwise two sample Wilcoxon test.
# Load data
#:::::::::::::::::::::::::::::::::::::::
data("ToothGrowth")
df <- ToothGrowth
# One-sample test
#:::::::::::::::::::::::::::::::::::::::::
df %>% wilcox_test(len ~ 1, mu = 0)
#> Error in UseMethod("wilcox_test"): no applicable method for 'wilcox_test' applied to an object of class "data.frame"
# Two-samples unpaired test
#:::::::::::::::::::::::::::::::::::::::::
df %>% wilcox_test(len ~ supp)
#> Error in UseMethod("wilcox_test"): no applicable method for 'wilcox_test' applied to an object of class "data.frame"
# Two-samples paired test
#:::::::::::::::::::::::::::::::::::::::::
df %>% wilcox_test (len ~ supp, paired = TRUE)
#> Error in UseMethod("wilcox_test"): no applicable method for 'wilcox_test' applied to an object of class "data.frame"
# Compare supp levels after grouping the data by "dose"
#::::::::::::::::::::::::::::::::::::::::
df %>%
group_by(dose) %>%
wilcox_test(data =., len ~ supp) %>%
adjust_pvalue(method = "bonferroni") %>%
add_significance("p.adj")
#> Error in add_significance(., "p.adj"): The column p.adj does not exist in the data
# pairwise comparisons
#::::::::::::::::::::::::::::::::::::::::
# As dose contains more than two levels ==>
# pairwise test is automatically performed.
df %>% wilcox_test(len ~ dose)
#> Error in UseMethod("wilcox_test"): no applicable method for 'wilcox_test' applied to an object of class "data.frame"
# Comparison against reference group
#::::::::::::::::::::::::::::::::::::::::
# each level is compared to the ref group
df %>% wilcox_test(len ~ dose, ref.group = "0.5")
#> Error in UseMethod("wilcox_test"): no applicable method for 'wilcox_test' applied to an object of class "data.frame"
# Comparison against all
#::::::::::::::::::::::::::::::::::::::::
df %>% wilcox_test(len ~ dose, ref.group = "all")
#> Error in UseMethod("wilcox_test"): no applicable method for 'wilcox_test' applied to an object of class "data.frame"