Compute the Mahalanobis distance using data from an experiment conducted in a randomized complete block design or completely randomized design.

## Arguments

- .data
The dataset containing the columns related to Genotypes, replication/block and response variables, possible with grouped data passed from

`dplyr::group_by()`

.- gen
The name of the column that contains the levels of the genotypes.

- rep
The name of the column that contains the levels of the replications/blocks.

- resp
The response variables. For example

`resp = c(var1, var2, var3)`

.- design
The experimental design. Must be RCBD or CRD.

- by
One variable (factor) to compute the function by. It is a shortcut to

`dplyr::group_by()`

. To compute the statistics by more than one grouping variable use that function.- return
What the function return? Default is 'distance', i.e., the Mahalanobis distance. Alternatively, it is possible to return the matrix of means

`return = 'means'`

, or the variance-covariance matrix of residuals`return = 'covmat'`

.

## Value

A symmetric matrix with the Mahalanobis' distance. If `.data`

is
a grouped data passed from `dplyr::group_by()`

then the results
will be returned into a list-column of data frames.

## Author

Tiago Olivoto tiagoolivoto@gmail.com

## Examples

```
# \donttest{
library(metan)
maha <- mahala_design(data_g,
gen = GEN,
rep = REP,
resp = everything(),
return = "covmat")
# Compute one distance for each environment (all numeric variables)
maha_group <- mahala_design(data_ge,
gen = GEN,
rep = REP,
resp = everything(),
by = ENV)
# Return the variance-covariance matrix of residuals
cov_mat <- mahala_design(data_ge,
gen = GEN,
rep = REP,
resp = c(GY, HM),
return = 'covmat')
# }
```