beta.div.comp {adespatial}R Documentation

Decompose D in replacement and richness difference components


Podani-family and Baselga-family decompositions of the Jaccard and Sørensen dissimilarity coefficients and their quantitative forms (Ruzicka and percentage difference) into replacement and richness difference components, for species presence-absence or abundance data, as described in Legendre (2014).


beta.div.comp(mat, coef = "J", quant = FALSE, = FALSE)



Community composition data (data.frame or matrix).


Family of coefficients to be computed.

  • "S" or "Sorensen": Podani family, Sørensen-based indices.

  • "J" or "Jaccard": Podani family, Jaccard-based indices.

  • "BS": Baselga family, Sørensen-based indices.

  • "BJ": Baselga family, Jaccard-based indices.

  • "N": Podani & Schmera (2011) relativized nestedness index.

The quantitative form of the Sørensen dissimilarity is the percentage difference index. The quantitative form of the Jaccard dissimilarity is the Ruzicka index.


If TRUE, compute the quantitative forms of replacement, nestedness and D. If FALSE, compute the presence-absence forms of the coefficients.

If TRUE, save the matrices of parameters a, b and c used in presence-absence calculations.


For species presence-absence data, the dissimilarity coefficients are Jaccard = (b+c)/(a+b+c) and Sørensen = (b+c)/(2*a+b+c) with the usual a,b,c notation. For species abundance data, the dissimilarity coefficients are the Ruzicka index = (B+C)/(A+B+C) and Odum's percentage difference = (B+C)/(2A+B+C) (aka Bray-Curtis in some packages), where

The binary (quant=FALSE) and quantitative (quant=TRUE) forms of the S and J indices return the same values when computed for presence-absence data.


A list containing the following results:

The Jaccard and Sørensen dissimilarity coefficients and their quantitative forms, the Ruzicka and percentage difference indices, all have upper bounds (Dmax) of 1. Hence, when all sites contain a different set of species with no species in common, the maximum value that BDtotal can take is 0.5. See Legendre & De Caceres (2013, p. 958), section Maximum value of BD. This differs form the values produced by function beta.div(): with methods "hellinger", "chord" and "profiles", which have maximum values of sqrt(2), BDtotal has a maximum value of 1 for these dissimilarities.


Pierre Legendre


Baselga, A. (2010) Partitioning the turnover and nestedness components of beta diversity. Global Ecology and Biogeography, 19, 134–143.

Baselga, A. (2012) The relationship between species replacement, dissimilarity derived from nestedness, and nestedness. Global Ecology and Biogeography, 21, 1223-1232.

Baselga, A. (2013) Separating the two components of abundance-based dissimilarity: balanced changes in abundance vs. abundance gradients. Methods in Ecology and Evolution, 4, 552-557.

Carvalho, J.C., Cardoso, P., Borges, P.A.V., Schmera, D. & Podani, J. (2013) Measuring fractions of beta diversity and their relationships to nestedness: a theoretical and empirical comparison of novel approaches. Oikos, 122, 825-834.

Legendre, P. 2014. Interpreting the replacement and richness difference components of beta diversity. Global Ecology and Biogeography, 23, 1324-1334.

Legendre, P. and M. De Cáceres. 2013. Beta diversity as the variance of community data: dissimilarity coefficients and partitioning. Ecology Letters 16: 951-963.

Podani, J., Ricotta, C. & Schmera, D. (2013) A general framework for analyzing beta diversity, nestedness and related community-level phenomena based on abundance data. Ecological Complexity, 15, 52-61.

Podani, J. & Schmera, D. 2011. A new conceptual and methodological framework for exploring and explaining pattern in presence-absence data. Oikos, 120, 1625-1638.

See Also



if(require(ade4, quietly = TRUE)){
fish.sp = doubs$fish[-8,]   # Fish data; site 8 is removed because no fish were caught

# Compute and partition a matrix of Jaccard indices (presence-absence data)
out1 = beta.div.comp(fish.sp, coef="J", quant=FALSE)

# Compute and partition a matrix of percentage difference indices
# (quantitative form of Sorensen index)
out2 = beta.div.comp(fish.sp, coef="S", quant=TRUE)
# In paragraph Value, see the description of the 5 elements of vector part. 
# Is the fish beta diversity dominated by replacement or richness/abundance difference?

[Package adespatial version 0.3-14 Index]