expandDoubleVerts {lme4} | R Documentation

## Expand terms with `'||'` notation into separate `'|'` terms

### Description

From the right hand side of a formula for a mixed-effects model, expand terms with the double vertical bar operator into separate, independent random effect terms.

### Usage

      expandDoubleVerts(term)

### Arguments

`term` | a mixed-model formula

### Value

the modified term

### Note

Because `||` works at the level of formula parsing, it has no way of knowing whether a variable is a factor. It just takes the terms within a random-effects term and literally splits them into the intercept and separate no-intercept terms, e.g. `(1+x+y|f)` would be split into `(1|f) + (0+x|f) + (0+y|f)`. However, `||` will fail to break up factors into separate terms; the `dummy` function can be useful in this case, although it is not as convenient as `||`.

### See Also

`formula`, `model.frame`, `model.matrix`, `dummy`.

Other utilities: `mkRespMod`, `mkReTrms`, `nlformula`, `nobars`, `subbars`

### Examples

      m <- ~ x + (x || g)
      expandDoubleVerts(m)
      set.seed(101)
      dd <- expand.grid(f=factor(letters[1:3]),g=factor(1:200),rep=1:3)
      dd$y <- simulate(~f + (1|g) + (0+dummy(f,"b")|g) + (0+dummy(f,"c")|g),
              newdata=dd,
              newparams=list(beta=rep(0,3),
                             theta=c(1,2,1),
                             sigma=1),
              family=gaussian)[[1]]
      m1 <- lmer(y~f+(f|g),data=dd)
      VarCorr(m1)
      m2 <- lmer(y~f+(1|g) + (0+dummy(f,"b")|g) + (0+dummy(f,"c")|g),
                   data=dd)
      VarCorr(m2)

[Package lme4 version 1.1-21 Index]