crosstab {descr} | R Documentation |
This function is a wrapper for CrossTable
, adding a
mosaic plot and making it easier to do a weighted cross-tabulation.
crosstab(dep, indep, weight = NULL, digits = list(expected = 1, prop = 3, percent = 1, others = 3), max.width = NA, expected = FALSE, prop.r = FALSE, prop.c = FALSE, prop.t = FALSE, prop.chisq = FALSE, chisq = FALSE, fisher = FALSE, mcnemar = FALSE, resid = FALSE, sresid = FALSE, asresid = FALSE, missing.include = FALSE, drop.levels = TRUE, format = "SPSS", cell.layout = TRUE, row.labels = !cell.layout, percent = (format == "SPSS" && !row.labels), total.r, total.c, dnn = "label", xlab = NULL, ylab = NULL, main = "", user.missing.dep, user.missing.indep, plot = getOption("descr.plot"), ...)
dep, indep |
Vectors in a matrix or a dataframe. |
weight |
An optional vector for a weighted cross tabulation. |
digits |
See |
max.width |
See |
expected |
See |
prop.r |
See |
prop.c |
See |
prop.t |
See |
prop.chisq |
See |
chisq |
See |
fisher |
See |
mcnemar |
See |
resid |
See |
sresid |
See |
asresid |
See |
missing.include |
See |
drop.levels |
See |
format |
See |
cell.layout |
See |
row.labels |
See |
percent |
See |
total.r |
See |
total.c |
See |
dnn |
See |
xlab |
See |
ylab |
See |
main |
An overall title for the plot (see
|
user.missing.dep |
An optional character vector with the levels of
|
user.missing.indep |
An optional character vector with the levels of
|
plot |
Logical: if
in your ‘.Rprofile’ to change the default function behavior. |
... |
Further arguments to be passed to
|
crosstab
invokes the CrossTable
with all boolean
options set to FALSE
and "SPSS"
as the default format
option. The returned CrossTable object can be plotted as a
mosaicplot
. Note that the gray scale colors used by
default in the mosaic plot do not have any statistical meaning. The colors
are used only to ease the plot interpretation.
Differently from CrossTable
, this function requires both
dep
and indep
arguments. If you want an univariate tabulation,
you should try either CrossTable
or freq
.
Jakson A. Aquino jalvesaq@gmail.com
CrossTable
, plot.CrossTable
,
xtable.CrossTable
.
educ <- sample(c(1, 2), 200, replace = TRUE, prob = c(0.3, 0.7)) educ <- factor(educ, levels = c(1, 2), labels = c("Low", "High")) opinion <- sample(c(1, 2, 9), 200, replace = TRUE, prob = c(0.4, 0.55, 0.05)) opinion <- factor(opinion, levels = c(1, 2, 9), labels = c("Disagree", "Agree", "Don't know")) attr(educ, "label") <- "Education level" attr(opinion, "label") <- "Opinion" weight <- sample(c(10, 15, 19), 200, replace = TRUE) crosstab(opinion, educ, xlab = "Education", ylab = "Opinion") ct <- crosstab(opinion, educ, weight, dnn = c("Opinion", "Education"), user.missing.dep = "Don't know", expected = TRUE, prop.c = TRUE, prop.r = TRUE, plot = FALSE) ct plot(ct, inv.y = TRUE) # Get the table of observed values as an object of class "table" tab <- ct$tab class(tab) tab # Get the complete cross table as "matrix" complete.tab <- descr:::CreateNewTab(ct) class(complete.tab) complete.tab ## xtable support library(xtable) # Print ugly table print(xtable(ct)) # Print pretty table # Add to the preamble of your Rnoweb document: # \usepackage{booktabs} # \usepackage{multirow} # \usepackage{dcolumn} # \newcolumntype{d}{D{.}{.}{-1}} print(xtable(ct, align = "llddd", multirow = TRUE, hline = TRUE, row.labels = TRUE, percent = FALSE, caption = "Opinion according to level of education"), booktabs = TRUE, include.rownames = FALSE, sanitize.text.function = function(x) x)