A combined plot of comparison plot created for levels of a grouping variable.

```
grouped_ggbetweenstats(
data,
x,
y,
grouping.var,
outlier.label = NULL,
title.prefix = NULL,
output = "plot",
...,
plotgrid.args = list(),
title.text = NULL,
title.args = list(size = 16, fontface = "bold"),
caption.text = NULL,
caption.args = list(size = 10),
sub.text = NULL,
sub.args = list(size = 12)
)
```

data

A dataframe (or a tibble) from which variables specified are to
be taken. A matrix or tables will **not** be accepted.

x

The grouping variable from the dataframe `data`

.

y

The response (a.k.a. outcome or dependent) variable from the
dataframe `data`

.

grouping.var

A single grouping variable (can be entered either as a
bare name `x`

or as a string `"x"`

).

outlier.label

Label to put on the outliers that have been tagged. This
**can't** be the same as `x`

argument.

title.prefix

Character string specifying the prefix text for the fixed
plot title (name of each factor level) (Default: `NULL`

). If `NULL`

, the
variable name entered for `grouping.var`

will be used.

output

Character that describes what is to be returned: can be
`"plot"`

(default) or `"subtitle"`

or `"caption"`

. Setting this to
`"subtitle"`

will return the expression containing statistical results. If
you have set `results.subtitle = FALSE`

, then this will return a `NULL`

.
Setting this to `"caption"`

will return the expression containing details
about Bayes Factor analysis, but valid only when `type = "parametric"`

and
`bf.message = TRUE`

, otherwise this will return a `NULL`

. For functions
`ggpiestats`

and `ggbarstats`

, setting `output = "proptest"`

will return a
dataframe containing results from proportion tests.

...

Arguments passed on to `ggbetweenstats`

`plot.type`

Character describing the

*type*of plot. Currently supported plots are`"box"`

(for pure boxplots),`"violin"`

(for pure violin plots), and`"boxviolin"`

(for a combination of box and violin plots; default).`xlab`

Labels for

`x`

and`y`

axis variables. If`NULL`

(default), variable names for`x`

and`y`

will be used.`ylab`

Labels for

`x`

and`y`

axis variables. If`NULL`

(default), variable names for`x`

and`y`

will be used.`pairwise.comparisons`

Logical that decides whether pairwise comparisons are to be displayed (default:

`FALSE`

). Please note that only**significant**comparisons will be shown by default. To change this behavior, select appropriate option with`pairwise.display`

argument. The pairwise comparison dataframes are prepared using the`pairwiseComparisons::pairwise_comparisons`

function. For more details about pairwise comparisons, see the documentation for that function.`p.adjust.method`

Adjustment method for

*p*-values for multiple comparisons. Possible methods are:`"holm"`

(default),`"hochberg"`

,`"hommel"`

,`"bonferroni"`

,`"BH"`

,`"BY"`

,`"fdr"`

,`"none"`

.`pairwise.display`

Decides which pairwise comparisons to display. Available options are

`"significant"`

(abbreviation accepted:`"s"`

) or`"non-significant"`

(abbreviation accepted:`"ns"`

) or`"everything"`

/`"all"`

. The default is`"significant"`

. You can use this argument to make sure that your plot is not uber-cluttered when you have multiple groups being compared and scores of pairwise comparisons being displayed.`bf.prior`

A number between

`0.5`

and`2`

(default`0.707`

), the prior width to use in calculating Bayes factors.`bf.message`

Logical that decides whether to display Bayes Factor in favor of the

*null*hypothesis. This argument is relevant only**for parametric test**(Default:`TRUE`

).`results.subtitle`

Decides whether the results of statistical tests are to be displayed as a subtitle (Default:

`TRUE`

). If set to`FALSE`

, only the plot will be returned.`subtitle`

The text for the plot subtitle. Will work only if

`results.subtitle = FALSE`

.`caption`

The text for the plot caption.

`sample.size.label`

Logical that decides whether sample size information should be displayed for each level of the grouping variable

`x`

(Default:`TRUE`

).`notch`

A logical. If

`FALSE`

(default), a standard box plot will be displayed. If`TRUE`

, a notched box plot will be used. Notches are used to compare groups; if the notches of two boxes do not overlap, this suggests that the medians are significantly different. In a notched box plot, the notches extend`1.58 * IQR / sqrt(n)`

. This gives a roughly`95%`

confidence interval for comparing medians. IQR: Inter-Quartile Range.`notchwidth`

For a notched box plot, width of the notch relative to the body (default

`0.5`

).`linetype`

Character strings (

`"blank"`

,`"solid"`

,`"dashed"`

,`"dotted"`

,`"dotdash"`

,`"longdash"`

, and`"twodash"`

) specifying the type of line to draw box plots (Default:`"solid"`

). Alternatively, the numbers`0`

to`6`

can be used (`0`

for "blank",`1`

for "solid", etc.).`outlier.color`

Default aesthetics for outliers (Default:

`"black"`

).`outlier.tagging`

Decides whether outliers should be tagged (Default:

`FALSE`

).`outlier.shape`

Hiding the outliers can be achieved by setting

`outlier.shape = NA`

. Importantly, this does not remove the outliers, it only hides them, so the range calculated for the`y`

-axis will be the same with outliers shown and outliers hidden.`outlier.point.args`

A list of additional aesthetic arguments to be passed to

`ggplot2::geom_point`

and`ggrepel::geom_label_repel`

geoms involved outlier value plotting.`outlier.label.args`

A list of additional aesthetic arguments to be passed to

`ggplot2::geom_point`

and`ggrepel::geom_label_repel`

geoms involved outlier value plotting.`outlier.coef`

Coefficient for outlier detection using Tukey's method. With Tukey's method, outliers are below (1st Quartile) or above (3rd Quartile)

`outlier.coef`

times the Inter-Quartile Range (IQR) (Default:`1.5`

).`mean.plotting`

Logical that decides whether mean is to be highlighted and its value to be displayed (Default:

`TRUE`

).`mean.ci`

Logical that decides whether

`95%`

confidence interval for mean is to be displayed (Default:`FALSE`

).`point.args`

A list of additional aesthetic arguments to be passed to the

`geom_point`

displaying the raw data.`violin.args`

A list of additional aesthetic arguments to be passed to the

`geom_violin`

.`ggplot.component`

A

`ggplot`

component to be added to the plot prepared by`ggstatsplot`

. This argument is primarily helpful for`grouped_`

variant of the current function. Default is`NULL`

. The argument should be entered as a function.`package`

Name of package from which the palette is desired as string or symbol.

`palette`

Name of palette as string or symbol.

`mean.point.args`

A list of additional aesthetic arguments to be passed to

`ggplot2::geom_point`

and`ggrepel::geom_label_repel`

geoms involved mean value plotting.`mean.label.args`

A list of additional aesthetic arguments to be passed to

`ggplot2::geom_point`

and`ggrepel::geom_label_repel`

geoms involved mean value plotting.`ggtheme`

A function,

`ggplot2`

theme name. Default value is`ggplot2::theme_bw()`

. Any of the`ggplot2`

themes, or themes from extension packages are allowed (e.g.,`ggthemes::theme_fivethirtyeight()`

,`hrbrthemes::theme_ipsum_ps()`

, etc.).`ggstatsplot.layer`

Logical that decides whether

`theme_ggstatsplot`

theme elements are to be displayed along with the selected`ggtheme`

(Default:`TRUE`

).`theme_ggstatsplot`

is an opinionated theme layer that override some aspects of the selected`ggtheme`

.`effsize.type`

Type of effect size needed for

*parametric*tests. The argument can be`"biased"`

(equivalent to`"d"`

for Cohen's*d*for**t-test**;`"partial_eta"`

for partial eta-squared for**anova**) or`"unbiased"`

(equivalent to`"g"`

Hedge's*g*for**t-test**;`"partial_omega"`

for partial omega-squared for**anova**)).`partial`

If

`TRUE`

, return partial indices.`k`

Number of digits after decimal point (should be an integer) (Default:

`k = 2`

).`var.equal`

a logical variable indicating whether to treat the variances in the samples as equal. If

`TRUE`

, then a simple F test for the equality of means in a one-way analysis of variance is performed. If`FALSE`

, an approximate method of Welch (1951) is used, which generalizes the commonly known 2-sample Welch test to the case of arbitrarily many samples.`conf.level`

Scalar between 0 and 1. If unspecified, the defaults return

`95%`

lower and upper confidence intervals (`0.95`

).`messages`

Decides whether messages references, notes, and warnings are to be displayed (Default:

`TRUE`

).`type`

Type of statistic expected (

`"parametric"`

or`"nonparametric"`

or`"robust"`

or`"bayes"`

).Corresponding abbreviations are also accepted:`"p"`

(for parametric),`"np"`

(nonparametric),`"r"`

(robust), or`"bf"`

resp.`nboot`

Number of bootstrap samples for computing confidence interval for the effect size (Default:

`100`

).`tr`

Trim level for the mean when carrying out

`robust`

tests. If you get error stating "Standard error cannot be computed because of Winsorized variance of 0 (e.g., due to ties). Try to decrease the trimming level.", try to play around with the value of`tr`

, which is by default set to`0.1`

. Lowering the value might help.

plotgrid.args

A list of additional arguments to `cowplot::plot_grid`

.

title.text

String or plotmath expression to be drawn as title for the
*combined plot*.

title.args

A list of additional arguments
provided to `title`

, `caption`

and `sub`

, resp.

caption.text

String or plotmath expression to be drawn as the caption
for the *combined plot*.

caption.args

A list of additional arguments
provided to `title`

, `caption`

and `sub`

, resp.

sub.text

The label with which the *combined plot* should be annotated.
Can be a plotmath expression.

sub.args

A list of additional arguments
provided to `title`

, `caption`

and `sub`

, resp.

For parametric tests, Welch's ANOVA/*t*-test are used as a default (i.e.,
`var.equal = FALSE`

).
References:

ANOVA: Delacre, Leys, Mora, & Lakens,

*PsyArXiv*, 2018*t*-test: Delacre, Lakens, & Leys,*International Review of Social Psychology*, 2017

If robust tests are selected, following tests are used is .

ANOVA: one-way ANOVA on trimmed means (see

`?WRS2::t1way`

)*t*-test: Yuen's test for trimmed means (see`?WRS2::yuen`

)

For more about how the effect size measures (for nonparametric tests) and
their confidence intervals are computed, see `?rcompanion::wilcoxonR`

.

For repeated measures designs, use `ggwithinstats`

.

https://indrajeetpatil.github.io/ggstatsplot/articles/web_only/ggbetweenstats.html

```
# NOT RUN {
# to get reproducible results from bootstrapping
set.seed(123)
# the most basic function call
ggstatsplot::grouped_ggbetweenstats(
data = dplyr::filter(ggplot2::mpg, drv != "4"),
x = year,
y = hwy,
grouping.var = drv,
conf.level = 0.99
)
# modifying individual plots using `ggplot.component` argument
ggstatsplot::grouped_ggbetweenstats(
data = dplyr::filter(
ggstatsplot::movies_long,
genre %in% c("Action", "Comedy"),
mpaa %in% c("R", "PG")
),
x = genre,
y = rating,
grouping.var = mpaa,
results.subtitle = FALSE,
ggplot.component = ggplot2::scale_y_continuous(
breaks = seq(1, 9, 1),
limits = (c(1, 9))
),
messages = FALSE
)
# }
```

Run the code above in your browser using DataLab