From the result of `findbars`

applied to a model formula
and the evaluation frame `fr`

, create the model matrix
`Zt`

, etc, associated with the random-effects terms.

```
mkReTrms(bars, fr, drop.unused.levels=TRUE,
reorder.terms=TRUE,
reorder.vars=FALSE)
mkNewReTrms(object, newdata, re.form=NULL,
na.action=na.pass,
allow.new.levels=FALSE,
sparse = max(lengths(orig.random.levs)) > 100)
```

a `list`

with components

- Zt
transpose of the sparse model matrix for the random effects

- theta
initial values of the covariance parameters

- Lind
an integer vector of indices determining the mapping of the elements of the

`theta`

vector to the`"x"`

slot of`Lambdat`

- Gp
a vector indexing the association of elements of the conditional mode vector with random-effect terms; if

`nb`

is the vector of numbers of conditional modes per term (i.e. number of groups times number of effects per group),`Gp`

is`c(0,cumsum(nb))`

(and conversely`nb`

is`diff(Gp)`

)- lower
lower bounds on the covariance parameters

- Lambdat
transpose of the sparse relative covariance factor

- flist
list of grouping factors used in the random-effects terms

- cnms
a list of column names of the random effects according to the grouping factors

- Ztlist
list of components of the transpose of the random-effects model matrix, separated by random-effects term

- nl
names of the terms (in the same order as

`Zt`

, i.e. reflecting the`reorder.terms`

argument)

- bars
a list of parsed random-effects terms

- fr
a model frame in which to evaluate these terms

- drop.unused.levels
(logical) drop unused factor levels?

- reorder.terms
arrange random effects terms in decreasing order of number of groups (factor levels)?

- reorder.vars
arrange columns of individual random effects terms in alphabetical order?

- object
a fitted

`merMod`

object- newdata
data frame for which to create new RE terms object

- re.form
(formula,

`NULL`

, or`NA`

) specify which random effects to condition on when predicting. If`NULL`

, include all random effects; if`NA`

or`~0`

, include no random effects- na.action
function determining what should be done with missing values for fixed effects in

`newdata`

- allow.new.levels
(logical) if new levels (or NA values) in

`newdata`

are allowed. If FALSE (default), such new values in`newdata`

will trigger an error; if TRUE, then the prediction will use the unconditional (population-level) values for data with previously unobserved levels (or NAs)- sparse
generate sparse contrast matrices?

Other utilities: `findbars`

,
`mkRespMod`

, `nlformula`

,
`nobars`

, `subbars`

.
`getME`

can retrieve these components
from a fitted model, although their values and/or forms
may be slightly different in the final fitted model from
their original values as returned from `mkReTrms`

.

```
data("Pixel", package="nlme")
mform <- pixel ~ day + I(day^2) + (day | Dog) + (1 | Side/Dog)
(bar.f <- findbars(mform)) # list with 3 terms
mf <- model.frame(subbars(mform),data=Pixel)
rt <- mkReTrms(bar.f,mf)
names(rt)
```

Run the code above in your browser using DataLab