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 | data frame |
|---|---|
| rowvar | row factor (unquoted) |
| colvar | column factor (unquoted) |
| type | statistics to print. Options are |
| total | logical. if TRUE, includes total percents. |
| na.rm | logical. if TRUE, deletes cases with missing values. |
| digits | number of decimal digits to report for percents. |
| chisquare | logical. If |
| plot | logical. If |
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(mtcars, cyl, gear, type="percent")#> gear #> cyl 3 4 5 Total #> 4 3.12% 25.00% 6.25% 34.38% #> 6 6.25% 12.50% 3.12% 21.88% #> 8 37.50% 0.00% 6.25% 43.75% #> Total 46.88% 37.50% 15.62% 100.00%# print column percents with chi-square test crosstab(mtcars, cyl, gear, type="colpercent", chisquare=TRUE)#> gear #> cyl 3 4 5 #> 4 6.67% 66.67% 40.00% #> 6 13.33% 33.33% 20.00% #> 8 80.00% 0.00% 40.00% #> Total 100.00% 100.00% 100.00% #> #> Chi-square = 18.04, df = 4, p = 0.0012# plot row percents with chi-square test crosstab(mtcars, cyl, gear, type="rowpercent", plot=TRUE, chisquare=TRUE)