Compute dissimilarity metrics (beta-diversity) between sites based on species composition
Source:R/dissimilarity.R
dissimilarity.Rd
This function creates a data.frame
where each row provides one or
several dissimilarity metric(s) between each pair of sites from a
co-occurrence matrix
with sites as rows and species as columns.
Arguments
- comat
a co-occurrence
matrix
with sites as rows and species as columns.- metric
a
character
vector indicating which metrics to chose (see Details). Available options are abc, ABC, Jaccard, Jaccardturn, Sorensen, Simpson, Bray, Brayturn or Euclidean.
If"all"
is specified, then all metrics will be calculated. Can be set toNULL
ifformula
is used.- formula
a
character
vector with your own formula(s) based on thea
,b
,c
,A
,B
, andC
quantities (see Details).formula
is set toNULL
by default.- method
a
character
indicating what method should be used to computeabc
(see Details).method = "prodmat"
by default is more efficient but can be greedy in memory andmethod="loops"
is less efficient but less greedy in memory.
Value
A data.frame
with additional class bioregion.pairwise.metric
,
providing one or several dissimilarity
metric(s) between each pair of sites. The two first columns represent each
pair of sites.
One column per dissimilarity metric provided in metric
and
formula
except for the metric abc and ABC that
are stored in three columns (one for each letter).
Details
With a
the number of species shared by a pair of sites, b
species only
present in the first site and c
species only present in the second site.
Jaccard = (b + c) / (a + b + c)Jaccard = (b + c) / (a + b + c)
Jaccardturn = 2min(b, c) / (a + 2min(b, c))Jaccardturn = 2min(b, c) / (a + 2min(b, c))Baselga2012bioregion
Sorensen = (b + c) / (2a + b + c)Sorensen = (b + c) / (2a + b + c)
Simpson = min(b, c) / (a + min(b, c))Simpson = min(b, c) / (a + min(b, c))
If abundances data are available, Bray-Curtis and its turnover component can also be computed with the following equation:
Bray = (B + C) / (2A + B + C)Bray = (B + C) / (2A + B + C)
Brayturn = min(B, C)/(A + min(B, C))Brayturn = min(B, C)/(A + min(B, C)) Baselga2013bioregion
with A the sum of the lesser values for common species shared by a pair of sites. B and C are the total number of specimens counted at both sites minus A.
formula
can be used to compute customized metrics with the terms
a
, b
, c
, A
, B
, and C
. For example
formula = c("pmin(b,c) / (a + pmin(b,c))", "(B + C) / (2*A + B + C)")
will compute the Simpson and Bray-Curtis dissimilarity metrics, respectively.
Note that pmin is used in the Simpson formula because a, b, c, A, B and C
are numeric
vectors.
Euclidean computes the Euclidean distance between each pair of sites.
Author
Maxime Lenormand (maxime.lenormand@inrae.fr), Pierre Denelle (pierre.denelle@gmail.com) and Boris Leroy (leroy.boris@gmail.com)
Examples
comat <- matrix(sample(0:1000, size = 50, replace = TRUE,
prob = 1 / 1:1001), 5, 10)
rownames(comat) <- paste0("Site", 1:5)
colnames(comat) <- paste0("Species", 1:10)
dissim <- dissimilarity(comat,
metric = c("abc", "ABC", "Simpson", "Brayturn"))
dissim <- dissimilarity(comat, metric = "all",
formula = "1 - (b + c) / (a + b + c)")