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

```
grouped_ggwithinstats(
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 `ggwithinstats`

`point.path`

Logical that decides whether individual data points and means, respectively, should be connected using

`geom_path`

. Both default to`TRUE`

. Note that`point.path`

argument is relevant only when there are two groups (i.e., in case of a*t*-test). In case of large number of data points, it is advisable to set`point.path = FALSE`

as these lines can overwhelm the plot.`mean.path`

Logical that decides whether individual data points and means, respectively, should be connected using

`geom_path`

. Both default to`TRUE`

. Note that`point.path`

argument is relevant only when there are two groups (i.e., in case of a*t*-test). In case of large number of data points, it is advisable to set`point.path = FALSE`

as these lines can overwhelm the plot.`mean.path.args`

A list of additional aesthetic arguments passed on to

`geom_path`

connecting raw data points and mean points.`point.path.args`

A list of additional aesthetic arguments passed on to

`geom_path`

connecting raw data points and mean points.`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.`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.`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.`p.adjust.method`

Adjustment method for

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

(default),`"hochberg"`

,`"hommel"`

,`"bonferroni"`

,`"BH"`

,`"BY"`

,`"fdr"`

,`"none"`

.`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.`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.`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.`caption`

The text for the plot caption.

`subtitle`

The text for the plot subtitle. Will work only if

`results.subtitle = FALSE`

.`sample.size.label`

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

`x`

(Default:`TRUE`

).`k`

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

`k = 2`

).`conf.level`

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

`95%`

lower and upper confidence intervals (`0.95`

).`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.`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`

).`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.`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`

).`outlier.tagging`

Decides whether outliers should be tagged (Default:

`FALSE`

).`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`

).`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.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.`violin.args`

A list of additional aesthetic arguments to be passed to the

`geom_violin`

.`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`

.`package`

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

`palette`

Name of palette as string or symbol.

`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.`messages`

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

`TRUE`

).`sphericity.correction`

Logical that decides whether to apply correction to account for violation of sphericity in a repeated measures design ANOVA (Default:

`TRUE`

).

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 more about how the effect size measures (for nonparametric tests) and
their confidence intervals are computed, see `?rcompanion::wilcoxonPairedR`

.

For independent measures designs, use `ggbetweenstats`

.

```
# NOT RUN {
# to get reproducible results from bootstrapping
set.seed(123)
library(ggstatsplot)
# the most basic function call
ggstatsplot::grouped_ggwithinstats(
data = VR_dilemma,
x = modality,
y = score,
grouping.var = order,
ggplot.component = ggplot2::scale_y_continuous(
breaks = seq(0, 1, 0.1),
limits = c(0, 1)
),
messages = TRUE
)
# }
```

Run the code above in your browser using DataLab