Learn R Programming

compositions (version 2.0-8)

clo: 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"))
               )

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).

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.

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.

Author

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

Details

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.

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

Run this code
(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