| expand.table {epitools} | R Documentation |
Expand contingency table into individual-level data set
Description
Expands contingency table or array into individual-level data set.
Usage
expand.table(x)
Arguments
x |
table or array with |
Details
For educational purposes, one may want to convert a multi-dimensional
contingency table into an individual-level data frame. In R,
multi-dimensional contigency tables are represented by arrays. An
array can be created using the array command, or the
table command with 3 or more vectors (usually fields from a data
frame).
It is this array, x, that is processed by
expand.table. In order to generate a data frame,
expand.table needs to process the field names and the possible
values for each field. The array x must have dimension names [i.e.,
dimnames(x)] and field names [i.e.,
names(dimnames(x))]. The expand.table function converts
names(dimnames(x)) to field names and the dimnames(x) to
factor levels for each field. Study the examples.
An ftable object, say ftab, can be expanded using
expand.table(as.table(ftab)).
Study the Titanic example to compare how a data frame can contain either individual-level data or group-level data.
Value
Returns an individual-level data frame
Author(s)
Tomas Aragon, aragon@berkeley.edu, http://www.phdata.science; Daniel Wollschlaeger, dwoll@psychologie.uni-kiel.de, http://www.uni-kiel.de/psychologie/dwoll/
References
none
See Also
Examples
##Creating array using 'array' function and expanding it
tab <- array(1:8, c(2, 2, 2))
dimnames(tab) <- list(c("No","Yes"), c("No","Yes"), c("No","Yes"))
names(dimnames(tab)) <- c("Exposure", "Disease", "Confounder")
tab
df <- expand.table(tab)
df
##Creating array using 'table' function and expanding it
tab2 <- table(Exposure = df$Exp, Disease = df$Dis, Confounder = df$Conf)
expand.table(tab2)
##Expanding ftable object
ftab2 <- ftable(tab2)
ftab2
expand.table(as.table(ftab2))
##Convert Titanic data into individual-level data frame
data(Titanic)
expand.table(Titanic)[1:20,]
##Convert Titanic data into group-level data frame
as.data.frame(Titanic)