R: Closure of a composition

clo {compositions} | R Documentation

## Closure of a composition

### Description

Closes compositions to sum up to one (or an optional total), by dividing each part by the sum.

### Usage

              clo( X, parts=1:NCOL(oneOrDataset(X)),total=1,
                   detectionlimit=attr(X,"detectionlimit"),
                   BDL=NULL,MAR=NULL,MNAR=NULL,SZ=NULL,
                   storelimit=!is.null(attr(X,"detectionlimit"))
                   )

### Arguments

`X` | composition or dataset of compositions
`parts` | vector containing the indices xor names of the columns to be used
`total` | the total amount to which the compositions should be closed; either a single number, or a numeric vector of length `gsi.getN(X)` specifying a different total for each compositional vector in the dataset.
`detectionlimit` | a number, vector or matrix of positive numbers giving the detection limit of all values, all variables, or each value
`BDL` | the code for values below detection limit in X
`SZ` | the code for structural zeroes in X
`MAR` | the code for values missed at random in X
`MNAR` | the code for values missed not at random in X
`storelimit` | a boolean indicating wether to store the detection limit as an attribute in the data. It defaults to FALSE if the detection limit is not already stored in the dataset. The attribute is only needed for very advanced analysis. Most times, this will not be used.

### Details

The closure operation is given by

clo(x) := ( \emph{x_i} / sum(x_j))

`clo` generates a composition without assigning one of the compositional classes `acomp` or `rcomp`. Note that after computing the closed-to-one version, obtaining a version closed to any other value is done by simple multiplication.

### Value

a composition or a data matrix of compositions, maybe without compositional class. The individual compositions are forced to sum to 1 (or to the optionally-specified total). The result should have the same shape as the input (vector, row, matrix).

### Missing Policy

How missing values are coded in the output always follows the general rules described in `compositions.missing`. The BDL values are accordingly scaled during the scaling operations but not taken into acount for the calculation of the total sum.

### Note

`clo` can be used to unclass compositions.

### Author(s)

K.Gerald v.d. Boogaart http://www.stat.boogaart.de, Raimon Tolosana-Delgado

### References

Aitchison, J. (1986) The Statistical Analysis of Compositional Data Monographs on Statistics and Applied Probability. Chapman & Hall Ltd., London (UK). 416p.

### See Also

`clr`,`acomp`,`rcomp`

### Examples

    (tmp <- clo(c(1,2,3)))
    clo(tmp,total=100)
    data(Hydrochem)
    plot( clo(Hydrochem,8:9) ) # Giving points on a line

[Package compositions version 1.40-3 Index]