# model.extract

##### Extract Components from a Model Frame

Returns the response, offset, subset, weights or other
special components of a model frame passed as optional arguments to
`model.frame`

.

- Keywords
- manip, models, programming

##### Usage

```
model.extract(frame, component)
model.offset(x)
model.response(data, type = "any")
model.weights(x)
```

##### Arguments

- frame, x, data
- A model frame.
- component
- literal character string or name. The name of a
component to extract, such as
`"weights"`

,`"subset"`

. - type
- One of
`"any"`

,`"numeric"`

,`"double"`

. Using either of latter two coerces the result to have storage mode`"double"`

.

##### Details

`model.extract`

is provided for compatibility with S, which does
not have the more specific functions. It is also useful to extract
e.g.\ifelse{latex}{\out{~}}{ } the `etastart`

and `mustart`

components of a
`glm`

fit.

`model.offset`

and `model.response`

are equivalent to
`model.extract(, "offset")`

and `model.extract(, "response")`

respectively. `model.offset`

sums any terms specified by
`offset`

terms in the formula or by `offset`

arguments
in the call producing the model frame: it does check that the offset
is numeric.

`model.weights`

is slightly different from
`model.frame(, "weights")`

in not naming the vector it returns.

##### Value

##### See Also

##### Examples

`library(stats)`

```
a <- model.frame(cbind(ncases,ncontrols) ~ agegp + tobgp + alcgp, data = esoph)
model.extract(a, "response")
stopifnot(model.extract(a, "response") == model.response(a))
a <- model.frame(ncases/(ncases+ncontrols) ~ agegp + tobgp + alcgp,
data = esoph, weights = ncases+ncontrols)
model.response(a)
model.extract(a, "weights")
a <- model.frame(cbind(ncases,ncontrols) ~ agegp,
something = tobgp, data = esoph)
names(a)
stopifnot(model.extract(a, "something") == esoph$tobgp)
```

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