stat_cross {ggstats} | R Documentation |
Compute cross-tabulation statistics
Description
Computes statistics of a 2-dimensional matrix using broom::augment.htest.
Usage
stat_cross(
mapping = NULL,
data = NULL,
geom = "point",
position = "identity",
...,
na.rm = TRUE,
show.legend = NA,
inherit.aes = TRUE,
keep.zero.cells = FALSE
)
Arguments
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. There are three options: If A A |
geom |
Override the default connection with
|
position |
Position adjustment, either as a string naming the adjustment
(e.g. |
... |
Other arguments passed on to |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
keep.zero.cells |
If |
Value
A ggplot2
plot with the added statistic.
Aesthetics
stat_cross()
requires the x and the y aesthetics.
Computed variables
- observed
number of observations in x,y
- prop
proportion of total
- row.prop
row proportion
- col.prop
column proportion
- expected
expected count under the null hypothesis
- resid
Pearson's residual
- std.resid
standardized residual
- row.observed
total number of observations within row
- col.observed
total number of observations within column
- total.observed
total number of observations within the table
- phi
phi coefficients, see
augment_chisq_add_phi()
See Also
vignette("stat_cross")
Examples
library(ggplot2)
d <- as.data.frame(Titanic)
# plot number of observations
ggplot(d) +
aes(x = Class, y = Survived, weight = Freq, size = after_stat(observed)) +
stat_cross() +
scale_size_area(max_size = 20)
# custom shape and fill colour based on chi-squared residuals
ggplot(d) +
aes(
x = Class, y = Survived, weight = Freq,
size = after_stat(observed), fill = after_stat(std.resid)
) +
stat_cross(shape = 22) +
scale_fill_steps2(breaks = c(-3, -2, 2, 3), show.limits = TRUE) +
scale_size_area(max_size = 20)
# custom shape and fill colour based on phi coeffients
ggplot(d) +
aes(
x = Class, y = Survived, weight = Freq,
size = after_stat(observed), fill = after_stat(phi)
) +
stat_cross(shape = 22) +
scale_fill_steps2(show.limits = TRUE) +
scale_size_area(max_size = 20)
# plotting the number of observations as a table
ggplot(d) +
aes(
x = Class, y = Survived, weight = Freq, label = after_stat(observed)
) +
geom_text(stat = "cross")
# Row proportions with standardized residuals
ggplot(d) +
aes(
x = Class, y = Survived, weight = Freq,
label = scales::percent(after_stat(row.prop)),
size = NULL, fill = after_stat(std.resid)
) +
stat_cross(shape = 22, size = 30) +
geom_text(stat = "cross") +
scale_fill_steps2(breaks = c(-3, -2, 2, 3), show.limits = TRUE) +
facet_grid(Sex ~ .) +
labs(fill = "Standardized residuals") +
theme_minimal()