Function used to set up a basic grouping term in brms.
The function does not evaluate its arguments --
it exists purely to help set up a model with grouping terms.
`gr`

is called implicitly inside the package
and there is usually no need to call it directly.

`gr(..., by = NULL, cor = TRUE, id = NA, cov = NULL, dist = "gaussian")`

## Arguments

- ...
One or more terms containing grouping factors.

- by
An optional factor variable, specifying sub-populations of the
groups. For each level of the `by`

variable, a separate
variance-covariance matrix will be fitted. Levels of the grouping factor
must be nested in levels of the `by`

variable.

- cor
Logical. If `TRUE`

(the default), group-level terms will be
modelled as correlated.

- id
Optional character string. All group-level terms across the model
with the same `id`

will be modeled as correlated (if `cor`

is
`TRUE`

). See `brmsformula`

for more details.

- cov
An optional matrix which is proportional to the withon-group
covariance matrix of the group-level effects. All levels of the grouping
factor should appear as rownames of the corresponding matrix. This argument
can be used, among others, to model pedigrees and phylogenetic effects. See
`vignette("brms_phylogenetics")`

for more details. By default, levels
of the same grouping factor are modeled as independent of each other.

- dist
Name of the distribution of the group-level effects.
Currently `"gaussian"`

is the only option.

## Examples

```
if (FALSE) {
# model using basic lme4-style formula
fit1 <- brm(count ~ Trt + (1|patient), data = epilepsy)
summary(fit1)
# equivalent model using 'gr' which is called anyway internally
fit2 <- brm(count ~ Trt + (1|gr(patient)), data = epilepsy)
summary(fit2)
# include Trt as a by variable
fit3 <- brm(count ~ Trt + (1|gr(patient, by = Trt)), data = epilepsy)
summary(fit3)
}
```