

   CCoommppuuttee AAlllloowweedd CChhaannggeess iinn AAddddiinngg ttoo oorr DDrrooppppiinngg ffrroomm aa FFoorr--
   mmuullaa

        add.scope(terms1, terms2)
        drop.scope(terms1, terms2)
        factor.scope(factor, scope)

   AArrgguummeennttss::

     terms1: the terms or formula for the base model.

     terms2: the terms or formula for the upper (`add.scope')
             or lower (`drop.scope') scope. If missing for
             `drop.scope' it is taken to be the null formula,
             so all terms (except any intercept) are candidates
             to be dropped.

     factor: the `"factor"' attribute of the terms of the base
             object.

      scope: a list with one or both components `drop' and
             `add' giving the `"factor"' attribute of the lower
             and upper scopes respectively.

   DDeessccrriippttiioonn::

        `add.scope' and `drop.scope' compute those terms that
        can be individually added to or dropped from a model
        while respecting the hierarchy of terms.

   DDeettaaiillss::

        `factor.scope' is not intended to be called directly by
        users.

   VVaalluuee::

        For `add.scope' and `drop.scope' a character vector of
        terms labels. For `factor.scope', a list with compo-
        nents `drop' and `add', character vectors of terms
        labels.

   AAuutthhoorr((ss))::

        B.D. Ripley

   SSeeee AAllssoo::

        `add1', `drop1', `aov', `lm'

   EExxaammpplleess::

        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"

