Learn R Programming

tab (version 3.1.2)

tabfreq.svy: Generate Frequency Tables for Statistical Reports (Survey Data)

Description

This function creates an I-by-J frequency table and summarizes the results in a clean table for a statistical report. Similar to tabfreq, but for survey data. Relies heavily on the 'survey' package [1,2].

Usage

tabfreq.svy(x, y, svy, latex = FALSE, xlevels = NULL, yname = "Y variable",
            ylevels = NULL, test = "F", decimals = 1, p.decimals = c(2, 3), p.cuts = 0.01,
            p.lowerbound = 0.001, p.leading0 = TRUE, p.avoid1 = FALSE, n.column = FALSE,
            n.headings = TRUE, compress = FALSE, compress.val = NULL, 
            bold.colnames = TRUE, bold.varnames = FALSE, bold.varlevels = FALSE, 
            variable.colname = "Variable")

Arguments

svy

Survey design object created by a call to svydesign [1,2].

x

Character string specifying column variable name. Must match one of names(svy$variables).

y

Character string specifying row variable name. Must match one of names(svy$variables).

latex

If TRUE, object returned is formatted for printing in LaTeX using xtable [3]; if FALSE, formatted for copy-and-pasting from RStudio into a word processor.

xlevels

Optional character vector to label the levels of x. If unspecified, the function uses the values that x takes on.

yname

Optional label for the y (row) variable.

ylevels

Optional character vector to label the levels of y. If unspecified, the function uses the values that y takes on. Note that levels of y will be listed in the order that they appear when you run table(y, x).

test

Controls test for association between x and y. Must be a possible value for the 'statistic' input of the svychisq function in the survey package [1,2]: 'F', 'Chisq', 'Wald', 'adjWald', 'lincom', or 'saddlepoint'.

decimals

Number of decimal places for percentages.

p.decimals

Number of decimal places for p-values. If a vector is provided rather than a single value, number of decimal places will depend on what range the p-value lies in. See p.cuts input.

p.cuts

Cut-point(s) to control number of decimal places used for p-values. For example, by default p.cuts is 0.1 and p.decimals is c(2, 3). This means that p-values in the range [0.1, 1] will be printed to two decimal places, while p-values in the range [0, 0.1) will be printed to three decimal places.

p.lowerbound

Controls cut-point at which p-values are no longer printed as their value, but rather <lowerbound. For example, by default p.lowerbound is 0.001. Under this setting, p-values less than 0.001 are printed as <0.001.

p.leading0

If TRUE, p-values are printed with 0 before decimal place; if FALSE, the leading 0 is omitted.

p.avoid1

If TRUE, p-values rounded to 1 are not printed as 1, but as >0.99 (or similarly depending on values for p.decimals and p.cuts).

n.column

If TRUE, the table will have a column for (unweighted) sample size.

n.headings

If TRUE, the table will indicate the (unweighted) sample size overall and in each group in parentheses after the column headings.

compress

If y has only two levels, setting compress to TRUE will produce a single row for n (percent) for the higher level. For example, if y is gender with 0 for female, 1 for male, setting compress = TRUE will return a table with n (percent) for males only.

compress.val

When x and y are both binary, and compress is TRUE, compress.val can be used to specify which level of the y variable should be shown. For example, if x is sex and y is obesity status with levels "Obese" and "Not Obese", setting compress to TRUE and compress.val to "Not Obese" would result in the table comparing the proportions of subjects that are not obese by sex.

bold.colnames

If TRUE, column headings are printed in bold font. Only applies if latex = TRUE.

bold.varnames

If TRUE, variable name in the first column of the table is printed in bold font. Only applies if latex = TRUE.

bold.varlevels

If TRUE, levels of the y variable are printed in bold font. Only applies if latex = TRUE.

variable.colname

Character string with desired heading for first column of table, which shows the y variable name and levels.

Value

A character matrix with the requested frequency table. If you click on the matrix name under "Data" in the RStudio Workspace tab, you will see a clean table that you can copy and paste into a statistical report or manuscript. If latex is set to TRUE, the character matrix will be formatted for inserting into an Sweave or Knitr report using the xtable package [3].

Details

NA

References

1. Lumley T (2012). survey: analysis of complex survey samples. R package version 3.28-2, https://cran.r-project.org/package=survey.

2. Lumley T (2014). Analysis of complex survey samples. Journal of Statistical Software 9(1): 1-19.

3. Dahl DB (2013). xtable: Export tables to LaTeX or HTML. R package version 1.7-1, https://cran.r-project.org/package=xtable.

Acknowledgment: This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No. DGE-0940903.

See Also

svydesign, svychisq, tabfreq, tabmeans, tabmedians, tabmulti, tabglm, tabcox, tabgee, tabmeans.svy, tabmedians.svy, tabmulti.svy, tabglm.svy

Examples

Run this code
# NOT RUN {
NA
# }

Run the code above in your browser using DataLab