Learn R Programming

qacBase (version 1.0.3)

crosstab: Two-way frequency table

Description

This function creates a two way frequency table.

Usage

crosstab(
  data,
  rowvar,
  colvar,
  type = c("freq", "percent", "rowpercent", "colpercent"),
  total = TRUE,
  na.rm = TRUE,
  digits = 2,
  chisquare = FALSE,
  plot = FALSE
)

Arguments

data

data frame

rowvar

row factor (unquoted)

colvar

column factor (unquoted)

type

statistics to print. Options are "freq", "percent", "rowpercent", or "colpercent" for frequencies, cell percents, row percents, or column percents).

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 TRUE perform a chi-square test of independence

plot

logical. If TRUE generate stacked bar chart.

Value

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.

Details

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.

See Also

print.crosstab, plot.crosstab

Examples

Run this code
# NOT RUN {
# print frequencies
crosstab(mtcars, cyl, gear)

# print cell percents
crosstab(cardata, vehicle_size, driven_wheels)
crosstab(cardata, vehicle_size, driven_wheels,
plot=TRUE)
crosstab(cardata, driven_wheels, vehicle_size,
type="colpercent", plot=TRUE, chisquare=TRUE)
# }

Run the code above in your browser using DataLab