# update.formula: Model Updating

## Description

`update.formula`

is used to update model formulae.
This typically involves adding or dropping terms,
but updates can be more general.

## Usage

# S3 method for formula
update(old, new, …)

## Arguments

old

a model formula to be updated.

new

a formula giving a template which specifies how to update.

…

further arguments passed to or from other methods.

## Value

The updated formula is returned. The environment of the result is
that of `old`

.

## Details

Either or both of `old`

and `new`

can be objects such as
length-one character vectors which can be coerced to a formula via
`as.formula`

.

The function works by first identifying the *left-hand side*
and *right-hand side* of the `old`

formula.
It then examines the `new`

formula and substitutes
the *lhs* of the `old`

formula for any occurrence
of ‘.’ on the left of `new`

, and substitutes
the *rhs* of the `old`

formula for any occurrence
of ‘.’ on the right of `new`

. The result is then
simplified *via* `terms.formula(simplify = TRUE)`

.

## Examples

# NOT RUN {
update(y ~ x, ~ . + x2) #> y ~ x + x2
update(y ~ x, log(.) ~ . ) #> log(y) ~ x
update(. ~ u+v, res ~ . ) #> res ~ u + v
# }