\Header{printCoefmat}{Print Coefficient Matrices}
\keyword{print}{printCoefmat}
\begin{Description}\relax
Utility function to be used in \dQuote{higher level} \code{\Link{print}}
methods, such as \code{\Link{print.summary.lm}},
\code{\Link{print.summary.glm}} and \code{\Link{print.anova}}.  The
goal is to provide a flexible interface with smart defaults such
that often, only \code{x} needs to be specified.
\end{Description}
\begin{Usage}
\begin{verbatim}
printCoefmat(x, digits=max(3, getOption("digits") - 2),
             signif.stars = getOption("show.signif.stars"),
             dig.tst = max(1, min(5, digits - 1)),
             cs.ind = 1:k, tst.ind = k + 1, zap.ind = integer(0),
             P.values = NULL,
             has.Pvalue = nc >= 4 && substr(colnames(x)[nc],1,3) == "Pr(",
             eps.Pvalue = .Machine$double.eps,
             na.print = "NA", ...)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{x}] a numeric matrix like object, to be printed.
\item[\code{digits}] minimum number of significant digits to be used for
most numbers.
\item[\code{signif.stars}] logical; if \code{TRUE}, P-values are additionally
encoded visually as \dQuote{significance stars} in order to help scanning
of long coefficient tables.  It defaults to the
\code{show.signif.stars} slot of \code{\Link{options}}.
\item[\code{dig.tst}] minimum number of significant digits for the test statistics,
see \code{tst.ind}.
\item[\code{cs.ind}] indices (integer) of column numbers which are (like)
\bold{c}oefficients and \bold{s}tandard errors to be formatted
together.
\item[\code{tst.ind}] indices (integer) of column numbers for test
statistics.
\item[\code{zap.ind}] indices (integer) of column numbers which should be
formatted by \code{\Link{zapsmall}}, i.e., by \dQuote{zapping} values
close to 0.
\item[\code{P.values}] logical or \code{NULL}; if \code{TRUE}, the last
column of \code{x} is formatted by \code{\Link{format.pval}} as P
values.  If \code{P.values = NULL}, the default, it is set to
\code{TRUE} only if \code{\Link{options}("show.coef.Pvalue")} is
\code{TRUE} \emph{and} \code{x} has at least 4 columns \emph{and}
the last column name of \code{x} starts with \code{"Pr("}.
\item[\code{has.Pvalue}] logical; if \code{TRUE}, the last column of \code{x}
contains P values; in that case, it is printed if and only if
\code{P.values} (above) is true.
\item[\code{eps.Pvalue}] number,..
\item[\code{na.print}] a character string to code \code{\Link{NA}} values in
printed output.
\item[\code{...}] further arguments for \code{\Link{print}}.
\end{ldescription}
\end{Arguments}
\begin{Value}
Invisibly returns its argument, \code{x}.
\end{Value}
\begin{Author}\relax
Martin Maechler
\end{Author}
\begin{SeeAlso}\relax
\code{\Link{print.summary.lm}},
\code{\Link{format.pval}},
\code{\Link{format}}.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
cmat <- cbind(rnorm(3, 10), sqrt(rchisq(3, 12)))
cmat <- cbind(cmat, cmat[,1]/cmat[,2])
cmat <- cbind(cmat, 2*pnorm(-cmat[,3]))
colnames(cmat) <- c("Estimate", "Std.Err", "Z value", "Pr(>z)")
printCoefmat(cmat[,1:3])
printCoefmat(cmat)
options(show.coef.Pvalues = FALSE)
printCoefmat(cmat, digits=2)
printCoefmat(cmat, digits=2, P.values = TRUE)
options(show.coef.Pvalues = TRUE)# revert
\end{ExampleCode}
\end{Examples}

