anova_test() gains a ci argument to add a
confidence interval for partial eta squared. With
effect.size = "pes" and e.g. ci = 0.95, two
columns conf.low/conf.high are returned,
computed in base R from the noncentral F distribution (Steiger, 2004) —
no new dependency. The intervals match
effectsize::eta_squared(partial = TRUE, ci = , alternative = "two.sided").
Works for one-way, factorial, repeated-measures and mixed designs (using
the uncorrected degrees of freedom, consistent with the effect-size
point estimate). No interval is provided for generalized eta squared
("ges", the default), which has no standard closed-form
interval. The default ci = NULL leaves the output unchanged
(#18).t_test() and wilcox_test() gain an
error.as.na argument: when TRUE, a comparison
that cannot be computed (a group with fewer than two observations, or
essentially constant data) returns an NA result row with a
warning naming the comparison, instead of stopping with an error — so
the remaining comparisons (or groups, in a grouped analysis) are still
computed. The default error.as.na = FALSE keeps the
previous behavior (the comparison errors) (#208, #158).t_test() and wilcox_test() gain an
id argument for paired tests: it names the
subject/sample identifier so the two compared groups are matched by
subject (instead of by row order), using only subjects present in both
groups (complete pairs). For more than two groups the matching is done
independently per pairwise comparison, so comparisons can be based on
different numbers of pairs (per-comparison pairwise deletion, like
SPSS). This makes paired tests work when observations are missing or the
groups have unequal sizes, and avoids silent mis-pairing when rows are
not in subject order. The default (id = NULL) is unchanged
(groups paired in row order) (#136, #175, #192).cor_test() now returns the degrees of freedom
(df) for the Pearson method (e.g. to report
r(df) = …, p); the column sits next to
statistic. Spearman/Kendall (which have no df) and
cor_mat()/cor_pmat() are unchanged (#107).get_summary_stats() can now report
skewness and kurtosis (bias-corrected,
type-2 estimator, matching e1071’s type = 2).
They are opt-in via show,
e.g. get_summary_stats(data, x, show = c("mean", "sd", "skewness", "kurtosis")),
and are not added to any default type, so existing output
is unchanged (#99).get_summary_stats() gains a digits
argument to control the number of decimal places (default 3); useful
when summarizing very small values that would otherwise round to 0 (#145, #186, #218).pairwise_mcnemar_test() now returns the McNemar
chi-squared statistic and df columns for
type = "mcnemar" (the default), as the documentation
already described; they were previously dropped. The exact-binomial path
(type = "exact"), mcnemar_test(), and the
p/p.adj values are unchanged (#122).dunn_test() gains a ref.group argument to
compare each group only to a reference (control) level. When specified,
the multiple-comparison adjustment is computed over only the
k - 1 comparisons against the reference (matching
e.g. GraphPad Prism), which is not equivalent to filtering the full
pairwise result afterwards. The default ref.group = NULL
performs all pairwise comparisons exactly as before (#101).chisq_test() now accepts a pipe-friendly data-frame
interface for the test of independence between two categorical
variables: data %>% chisq_test(var1, var2) (positional)
or data %>% chisq_test(vars = c("var1", "var2")). The
contingency table is built internally. The existing table/matrix/vector
interfaces (including passing a data frame that already is a contingency
table) are unchanged (#43).wilcox_effsize() gains a detailed
argument: when detailed = TRUE, the output additionally
includes the Z statistic (used to compute
r = Z/sqrt(N)), the p-value and the test method, so the
effect size and the underlying Z are reported in a single data frame.
The default (detailed = FALSE) output is unchanged (#122).dunnett_test() for Dunnett’s many-to-one
comparisons: each treatment group is compared against a single control
(ref.group), with the family-wise error rate controlled
over only the k - 1 comparisons using the exact
multivariate-t distribution. Results match
DescTools::DunnettTest() / multcomp::glht().
Built on emmeans (Suggests) (#129).ks_test() — a pipe-friendly wrapper around
stats::ks.test() for the two-sample Kolmogorov-Smirnov
test, with automatic pairwise comparisons (and ref.group)
for grouping variables with more than two levels (#92, #168).conover_test() for Conover’s
(Conover-Iman) all-pairs rank comparison test, a post-hoc procedure
following a significant Kruskal-Wallis test. It mirrors
dunn_test() (including ref.group and
grouped-data support) but uses the pooled within-group rank variance and
a t-distribution, making it generally more powerful.
Implemented in base R (no new dependency); results match
PMCMRplus::kwAllPairsConoverTest() (#222, #17).friedman_conover_test() for Conover’s
all-pairs comparisons (also known as the Durbin-Conover test), a
post-hoc procedure following a significant Friedman rank sum test (the
repeated-measures analogue of Conover’s Kruskal-Wallis post-hoc). It
supports ref.group and grouped data. Implemented in base R
(no new dependency); results match
PMCMRplus::frdAllPairsConoverTest() (#8).friedman_nemenyi_test() for the Nemenyi
all-pairs post-hoc test following a significant Friedman rank sum test
(the rank-based, repeated-measures analogue of Tukey’s HSD). The
statistic is referred to the studentized range distribution, which
already accounts for the multiplicity of the comparisons (so the
reported p.adj needs no further adjustment). Implemented in
base R (no new dependency); results match
PMCMRplus::frdAllPairsNemenyiTest() (#141).add_cld() adds the compact letter
display to an all-pairwise comparison result (e.g. from
tukey_hsd(), dunn_test(),
games_howell_test(), conover_test() or a
pairwise t_test()/wilcox_test()): groups that
do not share a letter are significantly different — convenient for
annotating plots. The letters are computed in base R via the
insert-and-absorb algorithm (Piepho, 2004), matching
multcompView::multcompLetters() but without adding a
dependency. Works on grouped tests (one display per group) (#110).fligner_test() — a pipe-friendly wrapper
around stats::fligner.test() for the Fligner-Killeen test,
a non-parametric (rank-based) test of the homogeneity of group variances
and a robust alternative to levene_test(). Supports grouped
data and reports the complete-case n (#179).t_test(),
wilcox_test(), kruskal_test(),
cor_test(), tukey_hsd(),
games_howell_test(), welch_anova_test(), the
pairwise_*/*_test
proportion/chi-square/Fisher/binomial/McNemar families, etc.) now return
full-precision p and p.adj, consistent with
dunn_test() which already did. Adjusted p-values are now
computed from the full-precision p-values, so re-running
adjust_pvalue() (or p.adjust()) downstream is
exact. This changes the stored/printed
p/p.adj (more digits), and pairwise
p.adj values can shift slightly because adjustment is no
longer applied to pre-rounded inputs. To round for display, use
p_format() / p_round() or
options(pillar.sigfig=). Test statistics, effect sizes, the
correlation coefficient, and the omnibus ANOVA tests
(anova_test(), welch_anova_test(), whose
summary p stays at 3 significant figures) are unaffected (#108, #135, #219).method column of detailed test results
(detailed = TRUE) now reports the specific test variant
instead of a generic label: t_test() gives “Welch t-test” /
“T-test” / “Paired t-test” / “One-sample t-test”, and
wilcox_test() gives “Wilcoxon rank sum test” / “Wilcoxon
signed rank test” (#124).
Non-detailed output and the p-values/statistics are unchanged.freq_table() now supports grouped
data: data %>% group_by(g) %>% freq_table(x)
computes the frequency table of x within each group (the
grouping columns are kept and the proportions sum to 100% within each
group), returning a single tidy data frame. Previously a grouped call
errored. Ungrouped behavior is unchanged. Based on the contribution by
@jakub-jedrusiak (#191).emmeans_test()’s
model argument for two common cases: (i) computing
estimated marginal means averaged over another factor
in a factorial design (fit lm(y ~ a * b) and compare
a via formula = y ~ a, model =),
and (ii) repeated-measures / mixed designs (pass a
within-subject model such as aov(... + Error()) or
nlme::lme()). Both already worked via model =
— this clarifies the parameter and adds examples (#139, #131).add_y_position() /
add_x_position() / add_xy_position(), and
clarified that the groups column is a reserved
internal column (used to position dodged grouped comparisons)
that is overwritten — users should not rely on it or use
groups as one of their own column names in the test object.
A future major version may rename it to a dotted, less collision-prone
name (#16).anova_test()’s default
sums-of-squares type can differ between its two interfaces on
unbalanced designs: the formula interface defaults to type
II for between-subjects designs, while the
dv=/between= interface uses type III for
unbalanced between-subjects designs with more than one factor (both use
type III for repeated measures). For balanced designs the types
coincide; for unbalanced designs, pass type= explicitly for
reproducible, interface-independent results. A Note and
example were added to ?anova_test. No change to computed
results (#190).?\rstatix-programming`showing how to userstatixprogrammatically (variable names held in strings, wrapper functions). The selection interface (e.g.cor_test(),get_summary_stats()) supports tidy evaluation —!!/!!!, embracing with{{
}},vars=, andall_of()/any_of()— and the formula tests (e.g.t_test(),anova_test()) take a formula built withreformulate()/as.formula(paste())`.
These patterns already work; they are now documented and
cross-referenced from the relevant help pages (#142).cor_test() now errors with a clear message when a
weights argument is supplied, instead of silently returning
the unweighted correlation (it wraps
stats::cor.test(), which has no weights
argument). The message points to base R
stats::cov.wt(..., cor = TRUE) for a weighted Pearson
correlation. Unweighted calls are unaffected (#47).rstatix_missing_ref_group, so downstream
callers (e.g. ggpubr::geom_pwc(), which skips ref-less
grouped subsets) can detect it reliably by class — via
rlang::cnd_inherits() to also catch it through the grouped
(doo()/purrr) wrapping — instead of matching the
translatable message text (#153).t_test() / wilcox_test() (and the other
tests that accept ref.group) now give a clear, actionable
error when the specified ref.group is not present in the
data, instead of a cryptic
'<ref>' must be an existing level from
relevel(). This most often happens with grouped data where
some group does not contain the reference level; the message lists the
available levels and shows the
group_by() %>% filter(any(... == ref.group)) idiom to
keep only the groups that have it. Valid ref.group values
(including ref.group = "all") are unaffected (#153).t_test() / wilcox_test() when a
ref.group is used: the reference is taken as
group1, so
estimate = mean(group1) - mean(group2) = mean(ref.group) - mean(other)
(the base R t.test()/wilcox.test() convention)
and a positive statistic/estimate means the
value is higher in the reference group. The note also shows how to flip
the sign if you prefer a positive sign to mean “higher in the
non-reference group”. Documentation only — computed values are unchanged
(#153).add_xy_position() / add_x_position() with
scales = "free" now compute the bracket x positions
(xmin/xmax) per facet, so
they align correctly when a faceted plot
(facet_*(scales = "free")) shows a different set of x-axis
levels in each panel. Previously the global x positions were used,
placing brackets off-panel in facets that didn’t start from the first
level. scales = "fixed" (default) and "free_y"
are unchanged (#203).add_y_position() / add_xy_position() now
handle repeated-measures test results whose stashed formula has the
outcome ~ within | subject form
(e.g. friedman_conover_test()): the | subject
block is dropped when locating the x/grouping variable, so the brackets
position correctly. Ordinary outcome ~ group results are
unaffected (#8).anova_test() now gives clear, actionable error messages
for two common repeated-measures data problems instead of cryptic ones:
when the data has more than one observation per subject per
within-subject cell (“duplicated cells”), and when no subject has a
complete set of within-cell observations (previously a
0 (non-NA) cases error). Valid designs are unaffected (#216, #146, #116, #134, #102).badges.cranchecks.info endpoint (the old
cranchecks.info badge no longer resolves) (#174).?anova_test documentation about
contrasts: the formula / dv +
between/within interface fits the model
internally with contr.sum (matching SPSS / type-III),
whereas a pre-fitted lm()/aov() keeps its own
contrasts (R’s default contr.treatment unless set
otherwise) (#225).?wilcox_effsize documentation of the
sample size N used in r = Z/sqrt(N). For the
one-sample and paired tests, N is the number of
pairs (difference scores), because the paired test reduces to a
one-sample signed-rank test on the differences; this matches the default
of rcompanion::wilcoxonPairedR(). The alternative
convention N = 2 x pairs (Field, 2012; Tomczak &
Tomczak, 2014) is now documented, with how to obtain it. Documentation
only — computed effect sizes are unchanged (#213).Use of .data in tidyselect expressions...,
Using an external vector in selections..., and
mutate_at()/pull() external-vector usage)
across the package by selecting columns with
all_of()/any_of(). This is an internal change
only — results are unchanged — but it future-proofs rstatix
against upcoming tidyselect versions and cleans up the test
output (#202).kruskal_test() (and therefore
kruskal_effsize()) now reports the number of observations
actually used by the test as n, rather than
nrow(data). When the outcome or group contained missing
values, kruskal.test() dropped them but the reported
n was the inflated raw row count; because
kruskal_effsize() (eta²[H]) uses n in its
denominator, the effect size could be wrong too. n is now
the complete-case count (matching the test’s own NA handling); the test
statistic and p-value are unchanged, and data without NAs report the
same n as before (#224).
Grouped repeated-measures anova_test() followed by
get_anova_table() no longer errors
(Can't combine <data.frame> and <list>) when
the per-group results have different shapes — for example when one group
needs a sphericity correction (so its result carries the
Mauchly/sphericity-correction tables) while another does not. The
internal doo() helper now decides whether to unnest based
on all groups rather than only the first, keeping heterogeneous results
in a list-column so get_anova_table() can extract each
group. Homogeneous grouped results (the usual case) are unchanged (#83).
wilcox_test() no longer hides the warning when the
underlying wilcox.test() silently lowers the
confidence interval’s confidence level (e.g. to 60% instead of
the requested 95%) because it cannot be achieved with tied or zero data.
Previously this was suppressed, so the returned interval looked like a
95% CI and could contradict the p-value (e.g. p > 0.05
while the CI excludes 0). A clear warning is now emitted in that case
(only when detailed = TRUE, i.e. when a CI is requested).
The returned values are unchanged; t_test() and clean-data
calls are unaffected (#127).
games_howell_test() no longer crashes
(`df` must be size 15 or 1, not 12) when groups have
zero variance (constant values) or undefined
variance (a single observation). The Welch correction is
undefined for the affected pairs (degrees of freedom 0/0,
or NA variance), so those comparisons are now returned as
NA with a warning while all other comparisons are computed
as usual. Previously such data either errored or silently returned
recycled/incorrect values. Results for data without
zero/undefined-variance groups are unchanged (#183).
add_xy_position()/add_y_position() now
keep significance brackets evenly spaced after the test results have
been filtered (e.g. to keep only significant
comparisons). Previously the y positions were computed for the full
comparison set and then joined onto the filtered rows, producing uneven
spacing; they are now computed for exactly the comparisons present.
Unfiltered results, ref.group = "all", one-sample and
grouped tests are unchanged (#197).
cor_test() (and cor_mat()) no longer
emit the tidyselect “Using an external vector in selections was
deprecated” warning when vars/vars2 are passed
as character vectors (e.g. cor_test(data, vars = my_vars));
the columns are now selected via all_of(). Bare names and
tidyselect helpers are unaffected (#202).
p_format() no longer strips a trailing
0 from the exponent of scientific-notation p-values
(e.g. p_format(5.1e-10) returned "5.1e-1"; it
now correctly returns "5.1e-10"). Ordinary decimal
formatting, including trailing.zero padding, is unchanged
(#112).
p_mark_significant() no longer produces
"e-NA" (with a coercion warning) when given a
scientific-notation p-value string such as the output of
p_format() on 1e-4; it now correctly returns
e.g. "1e-04****" (#148).
get_y_position()/add_y_position() now
space significance brackets by exactly step.increase.
Previously the gap between consecutive brackets was
step.increase * n/(n-1) (wider than requested) for
n >= 2 comparisons. This changes the computed
y.position values for plots with 3 or more groups
(brackets are slightly closer together); single-comparison (two-group)
plots and ref.group = "all" are unchanged (#201).
get_test_label() now includes the sample size
n for ANOVA results
(e.g. Anova, F(1,58) = 105.06, p = <0.0001, eta2[g] = 0.644, n = 60),
consistent with the other tests; it was previously dropped because the
slicing step stripped the attributes get_n() needs (#150).
The comparison tests (t_test(),
wilcox_test(), dunn_test(),
emmeans_test(), etc.) now drop unused levels of the
grouping factor, so a filtered factor that still carries empty levels no
longer triggers “not enough observations” errors — matching
stats::t.test() (#133).
wilcox_test() and
pairwise_wilcox_test() no longer error on degenerate
(all-tied / constant) data. The location confidence interval (which can
fail to compute on such data) is now requested only when
detailed = TRUE, so the default call returns gracefully;
statistic/p are unchanged (#79, #167).
anova_test() results (grouped and ungrouped) and
get_anova_table() output are now compatible with
dplyr verbs again (e.g. filter(),
mutate(), add_xy_position()): the class order
is corrected so rstatix_test precedes
data.frame, which recent
vctrs/dplyr require (#106, #111).
cohens_d() now honours the mu argument
for two-sample tests (independent and paired): mu is the
hypothesized mean difference and is subtracted before standardizing,
consistent with the one-sample case. Previously mu was
silently ignored for two-sample tests. Calls using the default
mu = 0 are unchanged (#200).
emmeans_test() no longer fails with “Nonconforming
number of contrast coefficients” when the covariate is a
numeric variable with only two distinct values (e.g. a 0/1 indicator).
The covariate is now correctly averaged over (ANCOVA) instead of being
kept as a grid factor (#206, #86).
kruskal_effsize() now clamps the eta-squared effect
size to its valid [0, 1] range, so a near-null effect no
longer returns a negative value (the formula could yield a small
negative for a tiny H); consequently it is correctly
labelled “small” rather than “large” (the magnitude had used the
absolute value) (#217).
anova_test() / anova_summary() now
return both effect sizes when
effect.size = c("pes", "ges") is requested; previously only
partial eta squared was kept (#180).
tukey_hsd() now respects conf.level
(and other TukeyHSD() arguments) for the ungrouped
data-frame interface; previously ... was dropped so the
confidence interval was always 95% (#188).
pairwise_binom_test_against_p() no longer errors on
an unnamed x; groups are auto-labelled grp1,
grp2, … (named/table input is unchanged) (#44).
Fixed a missing space in the anova_test() error
message for single-level factors (now reads “Variable x has only one
level”) (#137).
anova_test() results now carry
rstatix_test as the first class, with the
specific test class (anova_test /
grouped_anova_test) in second position — matching every
other rstatix test. The #106
dplyr/vctrs invariant (rstatix_test before
data.frame) is preserved, but the earlier
c("anova_test", "rstatix_test", "data.frame") order had
shifted the specific class out of position 2, breaking reverse
dependencies that dispatch on class(x)[2]
(e.g. GimmeMyStats, GimmeMyPlot). inherits(),
print()/plot() dispatch, dplyr verbs and
ggpubr are unaffected.
\item{} syntax in box_m.Rd and corrected
{v} to \code{v} in wilcox_test.Rd
(#220).sign.test() internal
function by adding @noRd tag.tidyselect versions is
>= 1.2.0emmeans_test(): restoring grouping variable class
(factor) in the final results emmeans_test()
(#169)emmeans_test(): “Use of .data in
tidyselect expressions was deprecated in tidyselect 1.2.0.”cor_plot() now accepts additional arguments to pass to
corrplot() (#66)car::Anova().get_comparisons() now drops unused levels before
creating possible comparisons (#67)get_summary_stats() keeps the order
of columns specified by the user (#46).two_sample_test() now counts group sizes
(n1 and n2) by the number of
non-NA values #104shapiro_test()
function. Shapiro_test() throws an error if the input data contains
column names “value” or “variable”. This is fixed now (#52).cor_test() function, where there was a
tidy evaluation conflict when the input data contains “x” and “y” as
column names (#68).dunn_test() documentation is updated to describe
the discrepancy between the default behavior of the
rstatix::dunn_test() compared to other packages
(dunn.test and jamovi). The default of the
rstatix::dunn_test() function is to perform a two-sided Dunn test like
the well known commercial softwares, such as SPSS and GraphPad. This is
not the case for some other R packages (dunn.test and jamovi), where the
default is to perform one-sided test (#50).get_summary_stats() handles the user
defined probabilities for grouped data (#78)get_n() to extract sample count (n) from statistical test
results. - get_description to extract stat test description
or name - remove_ns() to remove non-significant rows.add_x_position() to better support different
situations (#73).dunn_test() include
estimate1 and estimate2 when the argument
detailed = TRUE is specified. The estimate1
and estimate2 values represent the mean rank values of the
two groups being compared, respectively (#59).cor_spread() doc updated, error is explicitly shown if
the input data doesn’t contain the columns “var1”, “var2” and “cor”
(#95)emmeans_test() and
levene_test() to adapt to broom release 0.7.4 (#89)anova_test() is
updated to explain the internal contrast setting (#74).p_mark_significance() works when all p-values are
NA. Empty character (““) is returned for NA (#64).rstatix and grouped_anova_test)
added to grouped ANOVA test (#61)scales added in the function
get_y_position(). If the specified value is “free” or
“free_y”, then the step increase of y positions will be calculated by
plot panels. Note that, using “free” or “free_y” gives the same result.
A global step increase is computed when scales = “fixed” (#56).anova_test() computes now repeated
measures ANOVA without error when unused columns are present in the
input data frame (#55)stack added in
get_y_position() to compute p-values y position for stacked
bar plots (#48).wilcox_test(): Now, if detailed = TRUE, 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) (#45).anova_test() function: Changing R default contrast
setting (contr.treatment) into orthogonal contrasts
(contr.sum) to have comparable results to SPSS when users
define the model using formula (@benediktclaus, #40).type = "quantile" of
get_summary_stats() works properly (@Boyoron, #39).rstatix and the
ggpubr package and makes it easy to program with tidyverse
packages using non standard evaluation. - df_select - df_arrange -
df_group_by - df_nest_by - df_split_by - df_unite - df_get_var_names -
df_label_both - df_label_valuefreq_table() the option na.rm
removes only missing values in the variables used to create the
frequency table (@JuhlinF, #25).anova_test() (@benediktclaus, #31)games_howell_test() function : the
t-statistic is now calculated using the absolute mean
difference between groups (@GegznaV, #37).cohens_d() function now supports Hedge’s
correction. New argument hedge.correction added . logical
indicating whether apply the Hedges correction by multiplying the usual
value of Cohen’s d by (N-3)/(N-2.25) (for unpaired t-test)
and by (n1-2)/(n1-1.25) for paired t-test; where N is the
total size of the two groups being compared (N = n1 + n2) (@IndrajeetPatil, #9).cohens_d() outputs values with
directionality. The absolute value is no longer returned. It can now be
positive or negative depending on the data (@narunpat, #9).mu is now considered when calculating
cohens_d() for one sample t-test (@mllewis, #22).tukey_hsd() now handles situation where
minus - symbols are present in factor levels (@IndrajeetPatil, #19).identify_outliers returns a basic data frame
instead of tibble when nrow = 0 (for nice printing)detailed added in
dunn_test(). If TRUE, then estimate and method columns are
shown in the results.prop_test(), pairwise_prop_test() and
row_wise_prop_test(). Performs one-sample and two-samples
z-test of proportions. Wrappers around the R base function
prop.test() but have the advantage of performing pairwise
and row-wise z-test of two proportions, the post-hoc tests following a
significant chi-square test of homogeneity for 2xc and rx2 contingency
tables.fisher_test(), pairwise_fisher_test() and
row_wise_fisher_test(): Fisher’s exact test for count data.
Wrappers around the R base function fisher.test() but have
the advantage of performing pairwise and row-wise fisher tests, the
post-hoc tests following a significant chi-square test of homogeneity
for 2xc and rx2 contingency tables.chisq_test(), pairwise_chisq_gof_test(),
pairwise_chisq_test_against_p() : Chi-square test for count
data.binom_test(), pairwise_binom_test(),
pairwise_binom_test_against_p() and
multinom_test(): performs exact binomial and multinomial
tests. Alternative to the chi-square test of goodness-of-fit-test when
the sample.counts_to_cases(): converts a contingency table or a
data frame of counts into a data frame of individual observations.mcnemar_test() and
cochran_qtest() for comparing two ore more related
proportions.prop_trend_test(): Performs chi-squared test for trend
in proportion. This test is also known as Cochran-Armitage trend
test.get_test_label() and get_pwc_label()
return expression by defaultget_anova_table() supports now an object of class
grouped_anova_testcorrection = "none" for repeated measures ANOVANAs are now automatically removed before quantile
computation for identifying outliers (@IndrajeetPatil, #10).set_ref_level(),
reorder_levels() and make_valid_levels()model added in the function
emmeans_test()welch_anova_test(): Welch one-Way ANOVA
test. A wrapper around the base function
stats::oneway.test(). This is is an alternative to the
standard one-way ANOVA in the situation where the homogeneity of
variance assumption is violated.friedman_effsize(), computes the effect
size of Friedman test using the Kendall’s W value.friedman_test(), provides a pipe-friendly
framework to perform a Friedman rank sum test, which is the
non-parametric alternative to the one-way repeated measures ANOVA
test.games_howell_test(): Performs Games-Howell
test, which is used to compare all possible combinations of group
differences when the assumption of homogeneity of variances is
violated.kruskal_effsize() for computing effect
size for Kruskal-Wallis test.p_round(), p_format(), p_mark_significant().wilcox_effsize() added for computing
effect size (r) for wilcoxon test.get_anova_table() added to extract ANOVA
table from anova_test() results. Can apply sphericity
correction automatically in the case of within-subject (repeated
measures) designs.get_anova_label()emmeans_test() added for pairwise
comparisons of estimated marginal means.comparison removed from
tukey_hsd() results (breaking change).n (sample count) added to statistical tests
results: t_test(), wilcox_test(),
sign_test(), dunn_test() and
kruskal_test() (@ShixiangWang, #4).rstatix_test class added to anova_test()
resultskruskal_test() is now an object of class
rstatix_test that has an attribute named
args for holding the test arguments.get_y_position(), y positions and test data are
merged now for grouped plots.y.trans added in
get_y_position() for y scale transformation.tukey_hsd() results.adjust_pvalue() now supports grouped datadetailed arguments correctly propagated when grouped
stats are performedget_pvalue_position added to autocompute
p-value positions for plotting significance using ggplot2.get_comparisons() added to create a list
of possible pairwise comparisons between groups.dunn_test() added for multiple pairwise
comparisons following Kruskal-Wallis test.sign_test() added.get_summary_stats() now supports type = “min”, “max”,
“mean” or “median”t_test(), wilcox_test(),
dunn_test() and sign_test() are now an object
of class rstatix_test that has an attribute named
args for holding the test arguments.cohens_d() is now a data frame
containing the Cohen’s d and the magnitude.detatiled is now passed to
compare_pairs().First release