format.df {Hmisc} | R Documentation

## Format a Data Frame or Matrix for LaTeX or HTML

### Description

`format.df` does appropriate rounding and decimal alignment, and outputs a character matrix containing the formatted data. If `x` is a `data.frame`, then do each component separately. If `x` is a matrix, but not a data.frame, make it a data.frame with individual components for the columns. If a component `x$x` is a matrix, then do all columns the same.

### Usage

    format.df(x, digits, dec=NULL, rdec=NULL, cdec=NULL,
              numeric.dollar=!dcolumn, na.blank=FALSE, na.dot=FALSE,
              blank.dot=FALSE, col.just=NULL, cdot=FALSE,
              dcolumn=FALSE, matrix.sep=' ', scientific=c(-4,4),
              math.row.names=FALSE, math.col.names=FALSE,
              double.slash=FALSE, format.Date="%m/%d/%Y",
              format.POSIXt="%m/%d/%Y %H:%M:%OS", ...)

### Arguments

`x` | a matrix (usually numeric) or data frame
`digits` | causes all values in the table to be formatted to `digits` significant digits. `dec` is usually preferred.

`dec`

If `dec` is a scalar, all elements of the matrix will be rounded to `dec` decimal places to the right of the decimal. `dec` can also be a matrix whose elements correspond to `x`, for customized rounding of each element. A matrix `dec` must have number of columns equal to number of columns of input `x`. A scalar `dec` is expanded to a vector `cdec` with number of items equal to number of columns of input `x`.

`rdec` | a vector specifying the number of decimal places to the right for each row (`cdec` is more commonly used than `rdec`) A vector `rdec` must have number of items equal to number of rows of input `x`. `rdec` is expanded to matrix `dec`.
`cdec` | a vector specifying the number of decimal places for each column. The vector must have number of items equal to number of columns or components of input x.
`cdot` | Set to `TRUE` to use centered dots rather than ordinary periods in numbers. The output uses a syntax appropriate for `latex`.
`na.blank` | Set to `TRUE` to use blanks rather than `NA` for missing values. This usually looks better in `latex`.

`dcolumn`

Set to `TRUE` to use David Carlisle's dcolumn style for decimal alignment in `latex`. Default is `FALSE`. You will probably want to use `dcolumn` if you use `rdec`, as a column may then contain varying number of places to the right of the decimal. `dcolumn` can line up all such numbers on the decimal point, with integer values right justified at the decimal point location of numbers that actually contain decimal places. When you use `dcolumn = TRUE`, `numeric.dollar` is set by default to `FALSE`. When you use `dcolumn = TRUE`, the object attribute `"style"` set to dcolumn as the `latex` `usepackage` must reference `[dcolumn]`. The three files ‘dcolumn.sty’, ‘newarray.sty’, and ‘array.sty’ will need to be in a directory in your TEXINPUTS path. When you use `dcolumn=TRUE`, `numeric.dollar` should be set to `FALSE`.

`numeric.dollar` | logical, default `!dcolumn`. Set to `TRUE` to place dollar signs around numeric values when `dcolumn = FALSE`. This assures that `latex` will use minus signs rather than hyphens to indicate negative numbers. Set to `FALSE` when `dcolumn = TRUE`, as `dcolumn.sty` automatically uses minus signs.
`math.row.names` | logical, set true to place dollar signs around the row names.
`math.col.names` | logical, set true to place dollar signs around the column names.
`na.dot` | Set to `TRUE` to use periods rather than `NA` for missing numeric values. This works with the SAS convention that periods indicate missing values.
`blank.dot` | Set to `TRUE` to use periods rather than blanks for missing character values. This works with the SAS convention that periods indicate missing values.

`col.just`

Input vector `col.just` must have number of columns equal to number of columns of the output matrix. When `NULL`, the default, the `col.just` attribute of the result is set to l for character columns and to r for numeric columns. The user can override the default by an argument vector whose length is equal to the number of columns of the result matrix. When `format.df` is called by `latex.default`, the `col.just` is used as the `cols` argument to the `tabular` environment and the letters l, r, and c are valid values. When `format.df` is called by SAS, the `col.just` is used to determine whether a \$ is needed on the input line of the ‘sysin’ file, and the letters l and r are valid values. You can pass specifications other than `l,r,c` in `col.just`, e.g., `"p{3in}"` to get paragraph-formatted columns from `latex()`.

`matrix.sep` | When `x` is a data frame containing a matrix, so that new column names are constructed from the name of the matrix object and the names of the individual columns of the matrix, `matrix.sep` specifies the character to use to separate object names from individual column names.
`scientific` | specifies ranges of exponents (or a logical vector) specifying values not to convert to scientific notation. See `format.default` for details.
`double.slash` | should escaping backslashes be themselves escaped.
`format.Date` | String used to format objects of the Date class.
`format.POSIXt` | String used to format objects of the POSIXt class.
`...` | other arguments are accepted and passed to `format.default`. For `latexVerbatim` these arguments are passed to the `print` function.

### Value

a character matrix with character images of properly rounded `x`. Matrix components of input `x` are now just sets of columns of character matrix. Object attribute`"col.just"` repeats the value of the argument `col.just` when provided, otherwise, it includes the recommended justification for columns of output. See the discussion of the argument `col.just`. The default justification is l for characters and factors, r for numeric. When `dcolumn==TRUE`, numerics will have . as the justification character.

### Author(s)

Frank E. Harrell, Jr.,
Department of Biostatistics,
Vanderbilt University,
f.harrell@vanderbilt.edu

Richard M. Heiberger,
Department of Statistics,
Temple University, Philadelphia, PA.
rmh@astro.ocis.temple.edu

### See Also

`latex`

### Examples

    ## Not run:
    x <- data.frame(a=1:2, b=3:4)
    x$m <- 10000*matrix(5:8,nrow=2)
    names(x)
    dim(x)
    x
    format.df(x, big.mark=",")
    dim(format.df(x))

    ## End(Not run)

[Package Hmisc version 3.17-4 Index]