R: Add new variables to a model frame

expand.model.frame {stats} | R Documentation

## 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 `na.action` and `subset` arguments are applied and allows, for example, `x` to be recovered for a model using `sin(x)` as a predictor.

### 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

`model.frame`,`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)

[Package stats version 2.8.1 Index]