This function takes a formula and some optional arguments and
constructs a terms object. The terms object can then be used to
construct a `model.matrix`

.

```
# S3 method for formula
terms(x, specials = NULL, abb = NULL, data = NULL, neg.out = TRUE,
keep.order = FALSE, simplify = FALSE, …,
allowDotAsName = FALSE)
```

x

a formula.

specials

which functions in the formula should be marked as
special in the `terms`

object? A character vector or `NULL`

.

abb

Not implemented in R.

data

a data frame from which the meaning of the special symbol
`.`

can be inferred. It is unused if there is no `.`

in
the formula.

neg.out

Not implemented in R.

keep.order

a logical value indicating whether the terms should
keep their positions. If `FALSE`

the terms are reordered so
that main effects come first, followed by the interactions,
all second-order, all third-order and so on. Effects of a given
order are kept in the order specified.

simplify

should the formula be expanded and simplified, the pre-1.7.0 behaviour?

…

further arguments passed to or from other methods.

allowDotAsName

normally `.`

in a formula refers to the
remaining variables contained in `data`

. Exceptionally,
`.`

can be treated as a name for non-standard uses of formulae.

A `terms.object`

object is returned. The object itself is
the re-ordered (unless `keep.order = TRUE`

) formula. In all
cases variables within an interaction term in the formula are
re-ordered by the ordering of the `"variables"`

attribute, which
is the order in which the variables occur in the formula.

Not all of the options work in the same way that they do in S and not all are implemented.