\HeaderA{dummy.coef}{Extract Coefficients in Original Coding}{dummy.coef}
\methaliasA{dummy.coef.aovlist}{dummy.coef}{dummy.coef.aovlist}
\methaliasA{dummy.coef.lm}{dummy.coef}{dummy.coef.lm}
\keyword{models}{dummy.coef}
\begin{Description}\relax
This extracts coefficients in terms of the original levels of the
coefficients rather than the coded variables.
\end{Description}
\begin{Usage}
\begin{verbatim}
dummy.coef(object, ...)

## S3 method for class 'lm':
dummy.coef(object, use.na = FALSE, ...)

## S3 method for class 'aovlist':
dummy.coef(object, use.na = FALSE, ...)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{object}] a linear model fit.
\item[\code{use.na}] logical flag for coefficients in a singular model. If
\code{use.na} is true, undetermined coefficients will be missing; if
false they will get one possible value.
\item[\code{...}] arguments passed to or from other methods.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
A fitted linear model has coefficients for the contrasts of the factor
terms, usually one less in number than the number of levels.  This
function re-expresses the coefficients in the original coding; as the
coefficients will have been fitted in the reduced basis, any implied
constraints (e.g., zero sum for \code{contr.helmert} or \code{contr.sum}
will be respected.  There will be little point in using
\code{dummy.coef} for \code{contr.treatment} contrasts, as the missing
coefficients are by definition zero.

The method used has some limitations, and will give incomplete results
for terms such as \code{poly(x, 2))}.  However, it is adequate for
its main purpose, \code{aov} models.
\end{Details}
\begin{Value}
A list giving for each term the values of the coefficients. For a
multistratum \code{aov} model, such a list for each stratum.
\end{Value}
\begin{Section}{Warning}
This function is intended for human inspection of the
output: it should not be used for calculations.  Use coded variables
for all calculations.

The results differ from S for singular values, where S can be incorrect.
\end{Section}
\begin{SeeAlso}\relax
\code{\LinkA{aov}{aov}}, \code{\LinkA{model.tables}{model.tables}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
options(contrasts=c("contr.helmert", "contr.poly"))
## From Venables and Ripley (2002) p.165.
utils::data(npk, package="MASS")
npk.aov <- aov(yield ~ block + N*P*K, npk)
dummy.coef(npk.aov)

npk.aovE <- aov(yield ~  N*P*K + Error(block), npk)
dummy.coef(npk.aovE)
\end{ExampleCode}
\end{Examples}

