table {base}R Documentation

Cross Tabulation

Description

table uses the cross-classifying factors to build a contingency table of the counts at each combination of factor levels.

Usage

table(..., exclude = c(NA, NaN), dnn, deparse.level = 1)
as.table(x, ...)
is.table(x)
as.data.frame.table(x, row.names = NULL, optional = FALSE)

Arguments

... objects which can be interpreted as factors (including character strings), or a list (or data frame) whose components can be so interpreted
exclude values to use in the exclude argument of factor when interpreting non-factor objects
dnn the names to be given to the dimensions in the result (`the dimname names').
deparse.level controls how the default dnn is constructed. See details.
x an arbitrary R object.
row.names a character vector giving the row names for the data frame.
optional a logical controlling whether row names are set. Currently not used.

Details

If the argument dnn is not supplied, the internal function list.names is called to compute the `dimname names'. If the arguments in ... are named, those names are used. For the remaining arguments, deparse.level = 0 gives an empty name, deparse.level = 1 uses the supplied argument if it is a symbol, and deparse.level = 2 will deparse the argument.

There is a summary method for contingency table objects created by table or xtabs, which gives basic information and performs a chi-squared test for independence of factors (note that the function chisq.test in package ctest currently only handles 2-d tables).

as.table and is.table coerce to and test for contingency table, respectively.

as.data.frame.table is a method for the generic function as.data.frame to convert the array-based representation of a contingency table to a data frame containing the classifying factors and the corresponding counts (the latter as component Freq). This is the inverse of xtabs.

Examples

## Simple frequency distribution
table(rpois(100,5))
data(warpbreaks)
attach(warpbreaks)
## Check the design:
table(wool, tension)
data(state)
table(state.division, state.region)

data(airquality)
attach(airquality)
# simple two-way contingency table
table(cut(Temp, quantile(Temp)), Month)

a <- letters[1:3]
table(a, sample(a))                    # dnn is c("a", "")
table(a, sample(a), deparse.level = 0) # dnn is c("", "")
table(a, sample(a), deparse.level = 2) # dnn is c("a", "sample(a)")

## xtabs() <-> as.data.frame.table() :
data(UCBAdmissions) ## already a contingency table
DF <- as.data.frame(UCBAdmissions)
class(tab <- xtabs(Freq ~ ., DF))# xtabs & table
## tab *is* ``the same'' as the original table:
all(tab == UCBAdmissions) 
all.equal(dimnames(tab), dimnames(UCBAdmissions))