Extracts label information from statistical tests. Useful for labelling plots with test outputs.

get_pwc_label(stat.test, type = c("expression", "text"))

get_test_label(
  stat.test,
  description = NULL,
  p.col = "p",
  type = c("expression", "text"),
  correction = c("auto", "GG", "HF", "none"),
  row = NULL,
  detailed = FALSE
)

create_test_label(
  statistic.text,
  statistic,
  p,
  parameter = NA,
  description = NULL,
  n = NA,
  effect.size = NA,
  effect.size.text = NA,
  type = c("expression", "text"),
  detailed = FALSE
)

get_n(stat.test)

get_description(stat.test)

Arguments

stat.test

statistical test results returned by rstatix functions.

type

the label type. Can be one of "text" and "expression". Partial match allowed. If you want to add the label onto a ggplot, it might be useful to specify type = "expresion".

description

the test description used as the prefix of the label. Examples of description are "ANOVA", "Two Way ANOVA". To remove the default description, specify description = NULL. If missing, we'll try to guess the statistical test default description.

p.col

character specifying the column containing the p-value. Default is "p", can be "p.adj".

correction

character, considered only in the case of ANOVA test. Which sphericity correction of the degrees of freedom should be reported for the within-subject factors (repeated measures). The default is set to "GG" corresponding to the Greenhouse-Geisser correction. Possible values are "GG", "HF" (i.e., Hyunh-Feldt correction), "none" (i.e., no correction) and "auto" (apply automatically GG correction if the sphericity assumption is not for within-subject design.

row

numeric, the row index to be considered. If NULL, the last row is automatically considered for ANOVA test.

detailed

logical value. If TRUE, returns detailed label.

statistic.text

character specifying the test statistic. For example statistic.text = "F" (for ANOVA test ); statistic.text = "t" (for t-test ).

statistic

the numeric value of a statistic.

p

the p-value of the test.

parameter

string containing the degree of freedom (if exists). Default is NA to accommodate non-parametric tests. For example parameter = "1,9" (for ANOVA test. Two parameters exist: DFn and DFd); sparameter = "9" (for t-test ).

n

sample count, example: n = 10.

effect.size

the effect size value

effect.size.text

a character specifying the relevant effect size. For example, for Cohens d statistic, effect.size.text = "d". You can also use plotmath expression as follow quote(italic("d")).

Value

a text label or an expression to pass to a plotting function.

Functions

  • get_pwc_label(): Extract label from pairwise comparisons.

  • get_test_label(): Extract labels for statistical tests.

  • create_test_label(): Create labels from user specified test results.

  • get_n(): Extracts sample counts (n) from an rstatix test outputs. Returns a numeric vector.

  • get_description(): Extracts the description of an rstatix test outputs. Returns a character vector.

Examples

# Load data
#:::::::::::::::::::::::::::::::::::::::
data("ToothGrowth")
df <- ToothGrowth

# One-way ANOVA test
#:::::::::::::::::::::::::::::::::::::::::
anov <- df %>% anova_test(len ~ dose)
get_test_label(anov, detailed = TRUE, type = "text")
#> [1] "Anova, F(1,58) = 105.06, p = <0.0001, eta2[g] = 0.644"

# Two-way ANOVA test
#:::::::::::::::::::::::::::::::::::::::::
anov <- df %>% anova_test(len ~ supp*dose)
get_test_label(anov, detailed = TRUE, type = "text",
   description = "Two Way ANOVA")
#> [1] "Two Way ANOVA, F(1,56) = 5.33, p = 0.025, eta2[g] = 0.087"


# Kruskal-Wallis test
#:::::::::::::::::::::::::::::::::::::::::
kruskal<- df %>% kruskal_test(len ~ dose)
get_test_label(kruskal, detailed = TRUE, type = "text")
#> [1] "Kruskal-Wallis, X2(2) = 40.67, p = <0.0001, n = 60"

# Wilcoxon test
#:::::::::::::::::::::::::::::::::::::::::
# Unpaired test
wilcox <- df %>% wilcox_test(len ~ supp)
get_test_label(wilcox, detailed = TRUE, type = "text")
#> [1] "Wilcoxon test, W = 575.5, p = 0.065, n = 60"
# Paired test
wilcox <- df %>% wilcox_test(len ~ supp, paired = TRUE)
get_test_label(wilcox, detailed = TRUE, type = "text")
#> [1] "Wilcoxon test, V = 350, p = 0.0043, n = 30"

# T test
#:::::::::::::::::::::::::::::::::::::::::
ttest <- df %>% t_test(len ~ dose)
get_test_label(ttest, detailed = TRUE, type = "text")
#> [[1]]
#> [1] "T test, t(37.99) = -6.48, p = <0.0001, n = 40"
#> 
#> [[2]]
#> [1] "T test, t(36.88) = -11.8, p = <0.0001, n = 40"
#> 
#> [[3]]
#> [1] "T test, t(37.1) = -4.9, p = <0.0001, n = 40"
#> 


# Pairwise comparisons labels
#:::::::::::::::::::::::::::::::::::::::::
get_pwc_label(ttest, type = "text")
#> [1] "pwc: T test; p.adjust: Holm"


# Create test labels
#:::::::::::::::::::::::::::::::::::::::::
create_test_label(
  statistic.text = "F", statistic = 71.82,
  parameter = "4, 294",
  p = "<0.0001",
  description = "ANOVA",
  type = "text"
)
#> [1] "ANOVA, p = <0.0001"


# Extract infos
#:::::::::::::::::::::::::::::::::::::::::
stat.test <- df %>% t_test(len ~ dose)
get_n(stat.test)
#> [1] 40 40 40
get_description(stat.test)
#> [1] "T test"