tableContinuous {reporttools} | R Documentation |
Many data analyses start with a display of descriptive statistics of important variables. This function takes a data frame of continuous variables and possible grouping (such as e.g. treatment), weighting, and subset variables and provides a LaTeX table of descriptive statistics separately per group and jointly for all observations, per variable. User-defined statistics can be provided.
tableContinuous(vars, weights = NA, subset = NA, group = NA, stats = c("n", "min", "q1", "median", "mean", "q3", "max", "s", "iqr", "na"), prec = 1, col.tit = NA, print.pval = c("none", "anova", "kruskal")[1], declare.zero = 10^-10, cap = "", lab = "", font.size = "footnotesize", longtable = TRUE, disp.cols = NA, nams = NA)
vars |
A data frame containing continuous variables. See nams for an alternative
way of specifying the variables to be displayed. |
weights |
Optional vector of weights of each observation. |
subset |
Optional logical vector, indicates subset of observations to be used. |
group |
Optional grouping variable. |
stats |
Specify which descriptive statistics should be displayed in the table, by either directly providing
one or more of the default character strings (in arbitrary order) or a user-defined function. A user-defined
function must bear a name, take a vector as an argument (NA 's are removed by default) and return
a single number (the desired statistic). For details see the examples below. |
prec |
Specify number of decimals to be displayed. |
col.tit |
Specify titles of columns. Note that the length of this vector must be equal to the length of
stats plus the number of potential user-defined functions added to stats . |
print.pval |
If print.pval == "anova" , p-values for an analysis of variance for a location
difference between groups are added to the table. If print.pval == "kruskal" , p-values of a Kruskal-Wallis test
are given. If group has only two levels, the respective p-values of a t- or Mann-Whitney test
are provided. Only applies if group is provided. |
declare.zero |
Computed descriptive statistics (not p-values) below that constant are set to 0. Yields nicer tables, especially when displaying centered or standardized variables. |
cap |
The caption of the resulting LaTeX table. |
lab |
The label of the resulting LaTeX table. |
font.size |
Font size for the generated table in LaTeX. |
longtable |
If TRUE , function makes use of package longtable in LaTex to generate tables that
span more than one page. If FALSE , generates a table in tabular environment. |
disp.cols |
Only included for backward compatibility. Needs to be a vector built of (some of) the default statistics
character strings if not equal to NA . From package version 1.0.2 on use of stats is recommended. |
nams |
A vector of strings, containing the names corresponding to the variables in vars , if vars
is not a data frame but a list of variables. These are then the names that appear in the LaTeX table.
This option is only kept for backward compatibility. |
Outputs the LaTeX table.
If either one of the arguments group
, weights
, or subset
is different from NA
and if vars
is a list, then it is assumed that all variables
in vars
are of equal length.
If longtable = TRUE
(which is the default), the function generates a table that may be more than one page
long, you need to include the package longtable in the LaTeX source.
If a list of variables is given to vars
, not all of these variables need to be of the same length. However,
note the Warning below.
Kaspar Rufibach (maintainer), kaspar.rufibach@ifspm.uzh.ch,
http://www.biostat.uzh.ch/aboutus/people/rufibach.html
Rufibach, K. (2009)
reporttools: R-Functions to Generate LaTeX Tables of Descriptive Statistics.
Journal of Statistical Software, Code Snippets, 31(1).
http://www.jstatsoft.org/v31/c01.
data(CO2) vars <- CO2[, 4:5] group <- CO2[, "Treatment"] weights <- c(rep(1, 60), rep(0, 10), rep(2, 14)) ## display default statistics, provide neither group nor weights tableContinuous(vars = vars, stats = c("n", "min", "mean", "median", "max", "iqr", "na"), print.pval = "kruskal", cap = "Table of continuous variables.", lab = "tab: descr stat") ## display default statistics, only use a subset of observations, grouped analysis tableContinuous(vars = vars, weights = weights, subset = c(rep(TRUE, 57), rep(FALSE, 100 - 57)), group = group, prec = 3, print.pval = "kruskal", cap = "Table of continuous variables.", lab = "tab: descr stat") ## supply user-defined statistics: trimmed mean and IQR as an unbiased estimate ## of the population standard deviation in case of normal data my.stats <- list("n", "na", "mean", "$\\bar{x}_{trim}$" = function(x){return(mean(x, trim = .05))}, "iqr", "IQR.unbiased" = function(x){return(IQR(x) / (2 * qnorm(3 / 4)))}) tableContinuous(vars = vars, weights = weights, group = group, stats = my.stats, prec = 3, print.pval = "none", cap = "Table of continuous variables.", lab = "tab: descr stat") ## disp.cols and nams can still be used, for backward compatibility. ## If a list is given to vars, the variables can be of different length. However, ## then weights, subset, and group must be set to NA (the default). tableContinuous(vars = list(CO2$conc, CO2$uptake, rnorm(1111), runif(2222)), nams = c("conc", "uptake", "random1", "random2"), disp.cols = c("n", "min", "median", "max", "iqr", "na"), cap = "Table of continuous variables.", lab = "tab: descr stat")