# Determine random-effects expressions from a formula

`findbars.Rd`

From the right hand side of a formula for a mixed-effects model, determine the pairs of expressions that are separated by the vertical bar operator. Also expand the slash operator in grouping factor expressions and expand terms with the double vertical bar operator into separate, independent random effect terms.

## Note

This function is called recursively on individual terms
in the model, which is why the argument is called
`term`

and not a name like `form`

, indicating a
formula.

## See also

`formula`

, `model.frame`

,
`model.matrix`

.

Other utilities: `mkRespMod`

,
`mkReTrms`

, `nlformula`

,
`nobars`

, `subbars`

## Examples

```
findbars(f1 <- Reaction ~ Days + (Days | Subject))
#> [[1]]
#> Days | Subject
#>
## => list( Days | Subject )
## These two are equivalent:% tests in ../inst/tests/test-doubleVertNotation.R
findbars(y ~ Days + (1 | Subject) + (0 + Days | Subject))
#> [[1]]
#> 1 | Subject
#>
#> [[2]]
#> 0 + Days | Subject
#>
findbars(y ~ Days + (Days || Subject))
#> [[1]]
#> 1 | Subject
#>
#> [[2]]
#> 0 + Days | Subject
#>
## => list of length 2: list ( 1 | Subject , 0 + Days | Subject)
findbars(~ 1 + (1 | batch / cask))
#> [[1]]
#> 1 | cask:batch
#>
#> [[2]]
#> 1 | batch
#>
## => list of length 2: list ( 1 | cask:batch , 1 | batch)
# \dontshow{
stopifnot(identical(findbars(f1),
list(quote(Days | Subject))))
# }
```