Learn R Programming

fundiversity

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.r-universe.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 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:

dist_traits_birds = as.matrix(dist(traits_birds))

fd_raoq(traits = NULL, dist_matrix = dist_traits_birds)
#>   site        Q
#> 1   s1 170.0519

Function Summary

Function NameIndex NameParallelizable[^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_1-parallel", package = "fundiversity") within R.

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:

ScaleRichnessDivergenceEvenness
α-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 betapartavailable in entropart, betapart or hillRavailable 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 NameIndices includedHas vignettesHas testsOn GitHubOn CRAN (last updated)
adivFunctional Entropy, Functional Redundancy
BATβ-diversity indices, Richness, divergence, and evenness with hypervolumes
betapartFunctional β-diversity
entropartFunctional Entropy
FDFRic, FDiv, FDis, FEve, Rao’s QE, Functional Group Richness
hilldivDendrogram-based Hill numbers for functional diversity
hillRFunctional Diversity Hill Numbers
hypervolumeHypervolume measure of functional diversity (~FRic)
mFDFunctional α- and β-diversity indices, including FRic, FDiv, FDis, FEve, FIde, FMPD, FNND, FOri, FSpe, Hill Numbers
TPDFRic, FDiv, FEve but for probability distributions
veganOnly dendrogram-based FD (treedive())

[^1]: parallelization through the future backend please refer to the parallelization vignette for details.

[^2]: 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.

Copy Link

Version

Install

install.packages('fundiversity')

Monthly Downloads

405

Version

1.1.1

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Matthias Greni

Last Published

November 21st, 2022

Functions in fundiversity (1.1.1)

fd_feve

Compute Functional Evenness (FEve)
site_sp_birds

Site-species matrix of birds along a Tropical Gradient
fd_fdiv

Compute Functional Divergence (FDiv)
fd_fric

Compute Functional Richness (FRic)
fd_fdis

Compute Functional Dispersion (FDis)
fundiversity-package

fundiversity: Easy Computation of Functional Diversity Indices
traits_plants

Functional Traits of Fleshy-fruit plants along a Tropical Gradient
site_sp_plants

Site-species matrix of plants along a Tropical Gradient
fd_fric_intersect

Intersection between convex hulls of pairs of sites
fd_raoq

Compute Rao's entropy index (Rao's Q)
traits_birds

Functional Traits of Frugivorous Birds along a Tropical Gradient