Learn R Programming

sjPlot (version 2.4.0)

sjt.xtab: Summary of contingency tables as HTML table

Description

Shows contingency tables as HTML file in browser or viewer pane, or saves them as file.

Usage

sjt.xtab(var.row, var.col, weight.by = NULL, title = NULL,
  var.labels = NULL, value.labels = NULL, wrap.labels = 20,
  show.obs = TRUE, show.cell.prc = FALSE, show.row.prc = FALSE,
  show.col.prc = FALSE, show.exp = FALSE, show.legend = FALSE,
  show.na = FALSE, show.summary = TRUE, statistics = c("auto", "cramer",
  "phi", "spearman", "kendall", "pearson"), string.total = "Total",
  digits = 1, tdcol.n = "black", tdcol.expected = "#339999",
  tdcol.cell = "#993333", tdcol.row = "#333399", tdcol.col = "#339933",
  emph.total = FALSE, emph.color = "#f8f8f8", prc.sign = " %",
  hundret = "100.0", CSS = NULL, encoding = NULL, file = NULL,
  use.viewer = TRUE, no.output = FALSE, remove.spaces = TRUE, ...)

Arguments

var.row

Variable that should be displayed in the table rows.

var.col

Cariable that should be displayed in the table columns.

weight.by

Vector of weights that will be applied to weight all cases. Must be a vector of same length as the input vector. Default is NULL, so no weights are used.

title

Table caption, as character vector.

var.labels

Character vector with variable names, which will be used to label variables in the output.

value.labels

Character vector (or list of character vectors) with value labels of the supplied variables, which will be used to label variable values in the output.

wrap.labels

numeric, determines how many chars of the value, variable or axis labels are displayed in one line and when a line break is inserted.

show.obs

Logical, if TRUE, observed values are shown

show.cell.prc

Logical, if TRUE, cell percentage values are shown

show.row.prc

Logical, if TRUE, row percentage values are shown

show.col.prc

Logical, if TRUE, column percentage values are shown

show.exp

Logical, if TRUE, expected values are also shown

show.legend

logical, if TRUE, and depending on plot type and function, a legend is added to the plot.

show.na

logical, if TRUE, NA's (missing values) are added to the output.

show.summary

Logical, if TRUE, a summary row with chi-squared statistics, degrees of freedom and Cramer's V or Phi coefficient and p-value for the chi-squared statistics.

statistics

Name of measure of association that should be computed. May be one of "auto", "cramer", "phi", "spearman", "kendall" or "pearson". See 'Details'.

string.total

Character label for the total column / row header

digits

Numeric, amount of digits after decimal point when rounding estimates and values.

tdcol.n

Color for highlighting count (observed) values in table cells. Default is black.

tdcol.expected

Color for highlighting expected values in table cells. Default is cyan.

tdcol.cell

Color for highlighting cell percentage values in table cells. Default is red.

tdcol.row

Color for highlighting row percentage values in table cells. Default is blue.

tdcol.col

Color for highlighting column percentage values in table cells. Default is green.

emph.total

Logical, if TRUE, the total column and row will be emphasized with a different background color. See emph.color.

emph.color

Logical, if emph.total = TRUE, this color value will be used for painting the background of the total column and row. Default is a light grey.

prc.sign

The percentage sign that is printed in the table cells, in HTML-format. Default is " %", hence the percentage sign has a non-breaking-space after the percentage value.

hundret

Default value that indicates the 100-percent column-sums (since rounding values may lead to non-exact results). Default is "100.0".

CSS

A list with user-defined style-sheet-definitions, according to the official CSS syntax. For more details, see this package-vignette, or 'Details' in sjt.frq.

encoding

String, indicating the charset encoding used for variable and value labels. Default is NULL, so encoding will be auto-detected depending on your platform (e.g., "UTF-8" for Unix and "Windows-1252" for Windows OS). Change encoding if specific chars are not properly displayed (e.g. German umlauts).

file

Destination file, if the output should be saved as file. If NULL (default), the output will be saved as temporary file and openend either in the IDE's viewer pane or the default web browser.

use.viewer

Logical, if TRUE, the HTML table is shown in the IDE's viewer pane. If FALSE or no viewer available, the HTML table is opened in a web browser.

no.output

Logical, if TRUE, the html-output is neither opened in a browser nor shown in the viewer pane and not even saved to file. This option is useful when the html output should be used in knitr documents. The html output can be accessed via the return value.

remove.spaces

Logical, if TRUE, leading spaces are removed from all lines in the final string that contains the html-data. Use this, if you want to remove parantheses for html-tags. The html-source may look less pretty, but it may help when exporting html-tables to office tools.

...

Other arguments, currently passed down to the test statistics functions chisq.test() or fisher.test().

Value

Invisibly returns

  • the web page style sheet (page.style),

  • the web page content (page.content),

  • the complete html-output (output.complete) and

  • the html-table with inline-css for use with knitr (knitr)

for further use.

Details

The p-value for Cramer's V and the Phi coefficient are based on chisq.test(). If any expected value of a table cell is smaller than 5, or smaller than 10 and the df is 1, then fisher.test() is used to compute the p-value. The test statistic is calculated with cramer() resp. phi().

Both test statistic and p-value for Spearman's rho, Kendall's tau and Pearson's r are calculated with cor.test().

When statistics = "auto", only Cramer's V or Phi are calculated, based on the dimension of the table (i.e. if the table has more than two rows or columns, Cramer's V is calculated, else Phi).

See Also

Examples

Run this code
# NOT RUN {
# prepare sample data set
data(efc)

# print simple cross table with labels
# }
# NOT RUN {
sjt.xtab(efc$e16sex, efc$e42dep)

# print cross table with manually set
# labels and expected values
sjt.xtab(efc$e16sex, efc$e42dep, var.labels = c("Elder's gender",
         "Elder's dependency"), value.labels = list(efc.labels[['e16sex']],
         efc.labels[['e42dep']]), show.exp = TRUE)

# print minimal cross table with labels, total col/row highlighted
sjt.xtab(efc$e16sex, efc$e42dep, show.cell.prc = FALSE, emph.total = TRUE)

# User defined style sheet
sjt.xtab(efc$e16sex, efc$e42dep,
         CSS = list(css.table = "border: 2px solid;",
                    css.tdata = "border: 1px solid;",
                    css.horline = "border-bottom: double blue;"))
# }
# NOT RUN {
# ordinal data, use Kendall's tau
sjt.xtab(efc$e42dep, efc$quol_5, statistics = "kendall")

# calculate Spearman's rho, with continuity correction
sjt.xtab(
  efc$e42dep,
  efc$quol_5,
  statistics = "spearman",
  exact = FALSE,
  continuity = TRUE
)

# }

Run the code above in your browser using DataLab