# clo: Closure of a composition In compositions: Compositional Data Analysis

## Description

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

## Usage

 1 2 3 4 5 6  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.

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