blob: f0299fb5c163b349c77a05b5ed3a6d9de6e7af9c [file] [log] [blame]
% File src/library/stats/man/update.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2011 R Core Team
% Distributed under GPL 2 or later
\name{update}
\title{Update and Re-fit a Model Call}
\alias{update}
\alias{update.default}
\alias{getCall}
\alias{getCall.default}
\usage{
update(object, \dots)
\method{update}{default}(object, formula., \dots, evaluate = TRUE)
getCall(x, \dots)
}
\arguments{
\item{object, x}{An existing fit from a model function such as \code{lm},
\code{glm} and many others.}
\item{formula.}{Changes to the formula -- see \code{update.formula} for
details.}
\item{\dots}{Additional arguments to the call, or arguments with
changed values. Use \code{name = NULL} to remove the argument \code{name}.}
\item{evaluate}{If true evaluate the new call else return the call.}
}
\description{
\code{update} will update and (by default) re-fit a model. It does this
by extracting the call stored in the object, updating the call and (by
default) evaluating that call. Sometimes it is useful to call
\code{update} with only one argument, for example if the data frame has
been corrected.
\dQuote{Extracting the call} in \code{update()} and similar functions
uses \code{getCall()} which itself is a (S3) generic function with a
default method that simply gets \code{x$call}.
Because of this, \code{update()} will often work (via its default
method) on new model classes, either automatically, or by providing a
simple \code{getCall()} method for that class.
}
\value{
If \code{evaluate = TRUE} the fitted object, otherwise the updated call.
}
\seealso{
\code{\link{update.formula}}
}
\references{
Chambers, J. M. (1992)
\emph{Linear models.}
Chapter 4 of \emph{Statistical Models in S}
eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.
}
\examples{
oldcon <- options(contrasts = c("contr.treatment", "contr.poly"))
## Annette Dobson (1990) "An Introduction to Generalized Linear Models".
## Page 9: Plant Weight Data.
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl", "Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
lm.D9
summary(lm.D90 <- update(lm.D9, . ~ . - 1))
options(contrasts = c("contr.helmert", "contr.poly"))
update(lm.D9)
getCall(lm.D90) # "through the origin"
options(oldcon)
}
\keyword{models}