add.scope
Resolve Scopes for Formulas
Description
Resolve scopes for formulas.
Usage
add.scope(terms1, terms2)
drop.scope(terms1, terms2)
factor.scope(factor, scope)
Arguments
terms1 |
the terms object for the base model, or the formula corresponding to it.
|
terms2 |
the terms object (or formula) for the upper scope
for add.scope, or the lower scope for drop.scope.
|
factor |
the "factor" attribute of terms1
|
scope |
a list with two components; \$add or \$drop which are the
factor attributes corresponding to upper and lower scope terms objects.
Either can be missing.
|
Value
A character vector of term labels is returned by add.scope,
which are all the terms in terms2, but not in terms1,
that can be separately added to terms1.
This last provision ensures that the hierarchical nature of the model is
preserved; e.g., third order interactions will only be added if
their second order marginals are present.
Similarly, drop.scope returns all the term labels that can be
dropped from term1, except for those in terms2, and likewise
maintaining the hierarchy.
factor.scope is support for the first two, and uses the factor
attributes of the terms to efficiently establish the valid labels,
returns a list with components "drop" and "add".
Note
These are support for the functions add1.lm, drop1.lm and step.glm.
See Also
Examples
add.scope( ~ a + b + c + a:b, ~ (a + b + c)^3)
# [1] "a:c" "b:c"
drop.scope( ~ a + b + c + a:b)
# [1] "c" "a:b"