Closes compositions to sum up to one (or an optional total), by dividing each part by the sum.
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"))
)
composition or dataset of compositions
vector containing the indices xor names of the columns to be used
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.
a number, vector or matrix of positive numbers giving the detection limit of all values, all variables, or each value
the code for values below detection limit in X
the code for structural zeroes in X
the code for values missed at random in X
the code for values missed not at random in X
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.
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).
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.
The closure operation is given by
$$ clo(x) := \left(x_i / \sum_{j=1}^D x_j\right) $$
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.
Aitchison, J. (1986) The Statistical Analysis of Compositional Data Monographs on Statistics and Applied Probability. Chapman & Hall Ltd., London (UK). 416p.
# NOT RUN {
(tmp <- clo(c(1,2,3)))
clo(tmp,total=100)
data(Hydrochem)
plot( clo(Hydrochem,8:9) ) # Giving points on a line
# }
Run the code above in your browser using DataLab