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.
Installation
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.runiverse.dev")
Examples
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 sitelevel:
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:
Function Summary
Function Name  Index Name  Parallelizable^{1}  Memoizable^{2} 

fd_fric() 
FRic  ✅  ✅ 
fd_fric_intersect() 
FRic_intersect  ✅  ✅ 
fd_fdiv() 
FDiv  ✅  ✅ 
fd_feve() 
FEve  ✅  ❌ 
fd_fdis() 
FDis  ✅  ❌ 
fd_raoq() 
Rao’s Q  ❌  ❌ 
Parallelization
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:
future::plan(future::multisession)
fd_fdiv(traits_birds)
#> site FDiv
#> 1 s1 0.7282172
For more details please refer to the parallelization vignette or use vignette("fundiversity_1parallel", package = "fundiversity")
within R. Note: parallelization and memoization are mutually exclusive, when doing computation in parallel, fundiversity falls back on unmemoised versions of function.
Available functional diversity indices
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

Related Packages
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 
Dendrogrambased 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 dendrogrambased FD (treedive() ) 
✅  ✅  ✅ 