fundiversity
provides a lightweight package to compute
common functional diversity indices. To a get a glimpse of what
fundiversity
can do refer to the introductory
vignette. The package is built using clear, public design
principles inspired from our own experience and user feedback.
You can install the stable version from CRAN with:
install.packages("fundiversity")
Alternatively, you can install the development version with:
install.packages("fundiversity", repos = "https://bisaloo.r-universe.dev")
fundiversity
lets you compute six functional diversity
indices: Functional Richness with fd_fric()
, intersection
with between convex hulls with fd_fric_intersect()
,
Functional Divergence with fd_fdiv()
, Rao’s Quadratic
Entropy with fd_raoq()
, Functional Dispersion with
fd_fdis()
and Functional Evenness with
fd_feve()
. You can have a brief overview of the indices in
the introductory
vignette.
All indices can be computed either using global trait data or at the site-level:
library("fundiversity")
# If only the trait dataset is specified, considers all species together
# by default
fd_fric(traits_birds)
#> site FRic
#> 1 s1 230967.7
# We can also compute diversity across sites
fd_fric(traits_birds, site_sp_birds)
#> site FRic
#> 1 elev_250 171543.730
#> 2 elev_500 185612.548
#> 3 elev_1000 112600.176
#> 4 elev_1500 66142.748
#> 5 elev_2000 20065.764
#> 6 elev_2500 18301.176
#> 7 elev_3000 17530.651
#> 8 elev_3500 3708.735
To compute Rao’s Quadratic Entropy, the user can also provide a distance matrix between species directly:
= as.matrix(dist(traits_birds))
dist_traits_birds
fd_raoq(traits = NULL, dist_matrix = dist_traits_birds)
#> site Q
#> 1 s1 170.0519
Function Name | Index Name | Parallelizable1 | Memoizable2 |
---|---|---|---|
fd_fric() |
FRic | ✅ | ✅ |
fd_fric_intersect() |
FRic_intersect | ✅ | ✅ |
fd_fdiv() |
FDiv | ✅ | ✅ |
fd_feve() |
FEve | ✅ | ❌ |
fd_fdis() |
FDis | ✅ | ❌ |
fd_raoq() |
Rao’s Q | ❌ | ❌ |
Thanks to the future.apply
package, all functions
(except fd_raoq()
) within fundiversity
support
parallelization through the future
backend. To toggle
parallelization follow the future
syntax:
::plan(future::multisession)
futurefd_fdiv(traits_birds)
#> site FDiv
#> 1 s1 0.7282172
For more details please refer to the parallelization
vignette or use
vignette("fundiversity_1-parallel", package = "fundiversity")
within R.
According to Pavoine & Bonsall (2011) classification, functional
diversity indices can be classified in three “domains” that assess
different properties of the functional space: richness, divergence, and
regularity. We made sure that the computations in the package are
correct in our correctness
vignette. fundiversity
provides function to compute
indices that assess this three facets at the site scale:
Scale | Richness | Divergence | Evenness |
---|---|---|---|
α-diversity (= among sites) |
FRic with fd_fric() |
FDiv with fd_fdiv() Rao’s QE with fd_raoq() FDis with fd_fdis() |
FEve with fd_feve() |
β-diversity (= between sites) |
FRic pairwise intersection with fd_fric_intersect() alternatives available in betapart |
available in entropart , betapart or
hillR |
available in BAT |
Several other packages exist that compute functional diversity indices. We did a performance comparison between related packages. We here mention some of them (but do not mention the numerous wrappers around these packages):
Package Name | Indices included | Has vignettes | Has tests | On GitHub | On CRAN (last updated) |
---|---|---|---|---|---|
adiv |
Functional Entropy, Functional Redundancy | ✅ | ❌ | ❌ | |
BAT |
β-diversity indices, Richness, divergence, and evenness with hypervolumes | ❌ | ❌ | ✅ | |
betapart |
Functional β-diversity | ❌ | ❌ | ❌ | |
entropart |
Functional Entropy | ✅ | ✅ | ✅ | |
FD |
FRic, FDiv, FDis, FEve, Rao’s QE, Functional Group Richness | ❌ | ❌ | ❌ | |
hilldiv |
Dendrogram-based Hill numbers for functional diversity | ❌ | ❌ | ✅ | |
hillR |
Functional Diversity Hill Numbers | ❌ | ✅ | ✅ | |
hypervolume |
Hypervolume measure of functional diversity (~FRic) | ✅ | ❌ | ✅ | |
mFD |
Functional α- and β-diversity indices, including FRic, FDiv, FDis, FEve, FIde, FMPD, FNND, FOri, FSpe, Hill Numbers | ✅ | ❌ | ✅ | |
TPD |
FRic, FDiv, FEve but for probability distributions | ✅ | ❌ | ❌ | |
vegan |
Only dendrogram-based FD (treedive() ) |
✅ | ✅ | ✅ |
parallelization through the
future
backend please refer to the parallelization
vignette for details.↩︎
memoization means that the results of
the functions calls are cached and not recomputed when recalled, to
toggle it off see the fundiversity::fd_fric()
Details
section.↩︎