This function creates a two way frequency table.
crosstab(
data,
rowvar,
colvar,
type = c("freq", "percent", "rowpercent", "colpercent"),
total = TRUE,
na.rm = TRUE,
digits = 2,
chisquare = FALSE,
plot = FALSE
)
data frame
row factor (unquoted)
column factor (unquoted)
statistics to print. Options are "freq"
,
"percent"
, "rowpercent"
, or "colpercent"
for frequencies, cell percents, row percents, or column percents).
logical. if TRUE, includes total percents.
logical. if TRUE, deletes cases with missing values.
number of decimal digits to report for percents.
logical. If TRUE
perform a chi-square test
of independence
logical. If TRUE
generate stacked bar chart.
If plot=TRUE
, return a ggplot2 graph.
Otherwise the function return a list with 6 components:
table
(table). Table of frequencies or percents
type
(character). Type of table to print
total
(logical). If TRUE
, print row and or column totals
digits
(numeric). number of digits to print
rowname
(character). Row variable name
colname
(character). Column variable name
chisquare
(character). If chisquare=TRUE
, contains
the results of the Chi-square test. NULL
otherwise.
Given a data frame, a row factor, a column factor, and a type (frequencies, cell percents, row percents, or column percents) the function provides the requested cross-tabulation.
If na.rm = FALSE
, a level labeled <NA>
added. If
total = TRUE
, a level labeled Total
is added. If
chisquare = TRUE
, a chi-square test of independence is
performed.
# print frequencies
crosstab(mtcars, cyl, gear)
#> gear
#> cyl 3 4 5 Total
#> 4 1 8 2 11
#> 6 2 4 1 7
#> 8 12 0 2 14
#> Total 15 12 5 32
# print cell percents
crosstab(cardata, vehicle_size, driven_wheels)
#> driven_wheels
#> vehicle_size all wheel drive four wheel drive front wheel drive
#> Compact 646 407 2491
#> Large 438 737 389
#> Midsize 1269 259 1907
#> Total 2353 1403 4787
#> driven_wheels
#> vehicle_size rear wheel drive Total
#> Compact 1220 4764
#> Large 1213 2777
#> Midsize 938 4373
#> Total 3371 11914
crosstab(cardata, vehicle_size, driven_wheels,
plot=TRUE)
crosstab(cardata, driven_wheels, vehicle_size,
type="colpercent", plot=TRUE, chisquare=TRUE)