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

.

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

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"`

.

The specified component of the model frame, usually a vector.

`model.extract`

is provided for compatibility with S, which does
not have the more specific functions. It is also useful to extract
e.g.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.

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