format.df
From Hmisc v4.02
by Frank E Harrell Jr
Format a Data Frame or Matrix for LaTeX or HTML
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, already.math.row.names=FALSE, math.col.names=FALSE, already.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 todec
decimal places to the right of the decimal.dec
can also be a matrix whose elements correspond tox
, for customized rounding of each element. A matrixdec
must have number of columns equal to number of columns of inputx
. A scalardec
is expanded to a vectorcdec
with number of items equal to number of columns of inputx
.  rdec

a vector specifying the number of decimal places to the right for each row
(
cdec
is more commonly used thanrdec
) A vectorrdec
must have number of items equal to number of rows of inputx
.rdec
is expanded to matrixdec
.  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 forlatex
.  na.blank

Set to
TRUE
to use blanks rather thanNA
for missing values. This usually looks better inlatex
.  dcolumn

Set to
TRUE
to use David Carlisle's dcolumn style for decimal alignment inlatex
. Default isFALSE
. You will probably want to usedcolumn
if you userdec
, 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 usedcolumn = TRUE
,numeric.dollar
is set by default toFALSE
. When you usedcolumn = TRUE
, the object attribute"style"
set to dcolumn as thelatex
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 usedcolumn=TRUE
,numeric.dollar
should be set toFALSE
.  numeric.dollar

logical, default
!dcolumn
. Set toTRUE
to place dollar signs around numeric values whendcolumn = FALSE
. This assures thatlatex
will use minus signs rather than hyphens to indicate negative numbers. Set toFALSE
whendcolumn = TRUE
, asdcolumn.sty
automatically uses minus signs.  math.row.names
 logical, set true to place dollar signs around the row names.
 already.math.row.names
 set to
TRUE
to prevent any math mode changes to row names  math.col.names
 logical, set true to place dollar signs around the column names.
 already.math.col.names
 set to
TRUE
to prevent any math mode changes to column names  na.dot

Set to
TRUE
to use periods rather thanNA
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. WhenNULL
, the default, thecol.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. Whenformat.df
is called bylatex.default
, thecol.just
is used as thecols
argument to thetabular
environment and the letters l, r, and c are valid values. Whenformat.df
is called by SAS, thecol.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 thanl,r,c
incol.just
, e.g.,"p{3in}"
to get paragraphformatted columns fromlatex()
.  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
. ForlatexVerbatim
these arguments are passed to theprint
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.
See Also
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)
Community examples
Looks like there are no examples yet.