blob: 0eea60d9836356df8564cdb1bc7eaf51340a4867 [file] [log] [blame]
% File src/library/stats/man/expand.model.frame.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2007 R Core Team
% Distributed under GPL 2 or later
\name{expand.model.frame}
\alias{expand.model.frame}
\title{Add new variables to a model frame}
\description{
Evaluates new variables as if they had been part of the formula of the
specified model. This ensures that the same \code{na.action} and
\code{subset} arguments are applied and allows, for example, \code{x}
to be recovered for a model using \code{sin(x)} as a predictor.
}
\usage{
expand.model.frame(model, extras,
envir = environment(formula(model)),
na.expand = FALSE)
}
\arguments{
\item{model}{a fitted model}
\item{extras}{one-sided formula or vector of character strings
describing new variables to be added}
\item{envir}{an environment to evaluate things in}
\item{na.expand}{logical; see below}
}
\details{
If \code{na.expand = FALSE} then \code{NA} values in the extra variables
will be passed to the \code{na.action} function used in
\code{model}. This may result in a shorter data frame (with
\code{\link{na.omit}}) or an error (with \code{\link{na.fail}}). If
\code{na.expand = TRUE} the returned data frame will have precisely the
same rows as \code{model.frame(model)}, but the columns corresponding to
the extra variables may contain \code{NA}.
}
\value{
A data frame.
}
\seealso{\code{\link{model.frame}}, \code{\link{predict}}}
\examples{
model <- lm(log(Volume) ~ log(Girth) + log(Height), data = trees)
expand.model.frame(model, ~ Girth) # prints data.frame like
dd <- data.frame(x = 1:5, y = rnorm(5), z = c(1,2,NA,4,5))
model <- glm(y ~ x, data = dd, subset = 1:4, na.action = na.omit)
expand.model.frame(model, "z", na.expand = FALSE) # = default
expand.model.frame(model, "z", na.expand = TRUE)
}
\keyword{manip}
\keyword{regression}