# expand.model.frame

##### Add new variables to a model frame

Evaluates new variables as if they had been part of the formula of the
specified model. This ensures that the same `na.action`

and
`subset`

arguments are applied and allows, for example, `x`

to be recovered for a model using `sin(x)`

as a predictor.

- Keywords
- manip, regression

##### Usage

```
expand.model.frame(model, extras,
envir = environment(formula(model)),
na.expand = FALSE)
```

##### Arguments

- model
a fitted model

- extras
one-sided formula or vector of character strings describing new variables to be added

- envir
an environment to evaluate things in

- na.expand
logical; see below

##### Details

If `na.expand = FALSE`

then `NA`

values in the extra variables
will be passed to the `na.action`

function used in
`model`

. This may result in a shorter data frame (with
`na.omit`

) or an error (with `na.fail`

). If
`na.expand = TRUE`

the returned data frame will have precisely the
same rows as `model.frame(model)`

, but the columns corresponding to
the extra variables may contain `NA`

.

##### Value

A data frame.

##### See Also

##### Examples

`library(stats)`

```
# NOT RUN {
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)
# }
```

*Documentation reproduced from package stats, version 3.5.0, License: Part of R 3.5.0*