## RLQ analysis

### Description

RLQ analysis performs a double inertia analysis of two arrays (R and Q) with a link expressed by a contingency table (L). The rows of L correspond to the rows of R and the columns of L correspond to the rows of Q.

### Usage

```rlq(dudiR, dudiL, dudiQ, scannf = TRUE, nf = 2)
## S3 method for class 'rlq'
print(x, ...)
## S3 method for class 'rlq'
plot(x, xax = 1, yax = 2, ...)
## S3 method for class 'rlq'
summary(object, ...)
## S3 method for class 'rlq'
randtest(xtest,nrepet = 999, modeltype = 6,...)
```

### Arguments

 `dudiR` a duality diagram providing from one of the functions dudi.hillsmith, dudi.pca, ... `dudiL` a duality diagram of the function dudi.coa `dudiQ` a duality diagram providing from one of the functions dudi.hillsmith, dudi.pca, ... `scannf` a logical value indicating whether the eigenvalues bar plot should be displayed `nf` if scannf FALSE, an integer indicating the number of kept axes `x` an rlq object `xax` the column number for the x-axis `yax` the column number for the y-axis `object` an rlq object `xtest` an rlq object `nrepet` the number of permutations `modeltype` the model used to permute data(2: permute rows of R, 4: permute rows of Q, 5: permute both, 6: sequential approach, see ter Braak et al. 2012) `...` further arguments passed to or from other methods

### Value

Returns a list of class 'dudi', sub-class 'rlq' containing:

 `call` call `rank` rank `nf` a numeric value indicating the number of kept axes `RV` a numeric value, the RV coefficient `eig` a numeric vector with all the eigenvalues `lw` a numeric vector with the rows weigths (crossed array) `cw` a numeric vector with the columns weigths (crossed array) `tab` a crossed array (CA) `li` R col = CA row: coordinates `l1` R col = CA row: normed scores `co` Q col = CA column: coordinates `c1` Q col = CA column: normed scores `lR` the row coordinates (R) `mR` the normed row scores (R) `lQ` the row coordinates (Q) `mQ` the normed row scores (Q) `aR` the axis onto co-inertia axis (R) `aQ` the axis onto co-inertia axis (Q)

### WARNING

IMPORTANT : row weights for `dudiR` and `dudiQ` must be taken from `dudiL`.

### Note

A testing procedure based on the total coinertia of the RLQ analysis is available by the function `randtest.rlq`. The function allows to deal with various analyses for tables R and Q. Means and variances are recomputed for each permutation (PCA); for MCA, tables are recentred and column weights are recomputed.The case of decentred PCA (PCA where centers are entered by the user) for R or Q is not yet implemented. If you want to use the testing procedure for this case, you must firstly center the table and then perform a non-centered PCA on the modified table.

### Author(s)

Stephane Dray stephane.dray@univ-lyon1.fr

### References

Doledec, S., Chessel, D., ter Braak, C.J.F. and Champely, S. (1996) Matching species traits to environmental variables: a new three-table ordination method. Environmental and Ecological Statistics, 3, 143–166.

Dray, S., Pettorelli, N., Chessel, D. (2002) Matching data sets from two different spatial samplings. Journal of Vegetation Science, 13, 867–874.

Dray, S. and Legendre, P. (2008) Testing the species traits-environment relationships: the fourth-corner problem revisited. Ecology, 89, 3400–3412.

ter Braak, C., Cormont, A., Dray, S. (2012) Improved testing of species traits-environment relationships in the fourth corner problem. Ecology, 93, 1525–1526.

`coinertia`, `fourthcorner`

### Examples

```   data(aviurba)
coa1 <- dudi.coa(aviurba\$fau, scannf = FALSE, nf = 2)
dudimil <- dudi.hillsmith(aviurba\$mil, scannf = FALSE, nf = 2, row.w = coa1\$lw)
duditrait <- dudi.hillsmith(aviurba\$traits, scannf = FALSE, nf = 2, row.w = coa1\$cw)
rlq1 <- rlq(dudimil, coa1, duditrait, scannf = FALSE, nf = 2)
plot(rlq1)
summary(rlq1)
randtest(rlq1)
fourthcorner.rlq(rlq1,type="Q.axes")
fourthcorner.rlq(rlq1,type="R.axes")

```