diversity(x, index = "shannon", MARGIN = 1, base = exp(1)) fisher.alpha(x, MARGIN = 1, ...) specnumber(x, groups, MARGIN = 1)
Both variants of Simpson's index are based on $D =
sum p_i^2$. Choice
simpson returns $1-D$ and
invsimpson returns $1/D$.
fisher.alpha estimates the $\alpha$ parameter of
Fisher's logarithmic series (see
The estimation is possible only for genuine
counts of individuals.
specnumber finds the number of species. With
MARGIN = 2, it finds frequencies of species. If
is given, finds the total number of species in each group (see
example on finding one kind of beta diversity with this option).
Better stories can be told about Simpson's index than about
Shannon's index, and still grander narratives about
rarefaction (Hurlbert 1971). However, these indices are all very
closely related (Hill 1973), and there is no reason to despise one
more than others (but if you are a graduate student, don't drag me in,
but obey your Professor's orders). In particular, the exponent of the
Shannon index is linearly related to inverse Simpson (Hill 1973)
although the former may be more sensitive to rare species. Moreover,
inverse Simpson is asymptotically equal to rarefied species richness
in sample of two individuals, and Fisher's $\alpha$ is very
similar to inverse Simpson.
tsallisestimate a series of generalized diversity indices. Function
rarefyfinds estimated number of species for given sample size. Beta diversity can be estimated with
betadiver. Diversities can be partitioned with
data(BCI) H <- diversity(BCI) simp <- diversity(BCI, "simpson") invsimp <- diversity(BCI, "inv") ## Unbiased Simpson (Hurlbert 1971, eq. 5) with rarefy: unbias.simp <- rarefy(BCI, 2) - 1 ## Fisher alpha alpha <- fisher.alpha(BCI) ## Plot all pairs(cbind(H, simp, invsimp, unbias.simp, alpha), pch="+", col="blue") ## Species richness (S) and Pielou's evenness (J): S <- specnumber(BCI) ## rowSums(BCI > 0) does the same... J <- H/log(S) ## beta diversity defined as gamma/alpha - 1: data(dune) data(dune.env) alpha <- with(dune.env, tapply(specnumber(dune), Management, mean)) gamma <- with(dune.env, specnumber(dune, Management)) gamma/alpha - 1
Run the code above in your browser using DataCamp Workspace