fuse {mFD} | R Documentation |
Compute FUSE (Functionally Unique, Specialized and Endangered)
Description
This index takes into account species functional uniqueness (also called Functional Originality), species specialisation and species IUCN status.
Usage
fuse(sp_dist, sp_faxes_coord, nb_NN = 5, GE, standGE = FALSE)
Arguments
sp_dist |
a dist object provided by |
sp_faxes_coord |
a data frame with the coordinates of the species on a multidimensional space based on a selected number of axes derived from a Principal Coordinate Analysis (PCoA). The species are in rows and the PCOA axes are in column. |
nb_NN |
a numerical value giving the number of nearest neighbor to
consider. Default: |
GE |
a numerical vector giving the IUCN status rank (DD = NA, LC = 0, NT = 1, VU = 2, EN = 3, CR = 4) or the IUCN extinction probability associated with each status. See Mooers et al. (2008) for further information. For example, DD = NA, LC = 0, NT = 0.1, VU = 0.4, EN = 0.666, and CR = 0.999). |
standGE |
a logical value to standardize the GE values. |
Value
A data frame with species in rows and the following metrics in columns:
FUSE: functionally unique, specialized and endangered (see Pimiento et al. (2020);
FUn_std: functional uniqueness standardized between 0 and 1 (see Mouillot et al. (2013);
FSp_std: functional specialization standardized between 0 and 1 (see Mouillot et al. (2013);
Author(s)
Fabien Leprieur and Camille Albouy
References
Mouillot et al. (2013) Rare species support vulnerable functions in
high-diversity ecosystems. PLoS Biology, 11, e1001569.
Pimiento et al. (2020) Functional diversity of marine megafauna in the
Anthropocene. Science Advances, 6, eaay7650.
Violle et al. (2007) Let the concept of trait be functional! Oikos,
116, 882-892.
Examples
# Load species traits data:
sp_tr <- read.csv(system.file('extdata', 'data_traits_MMA_ursus.csv',
package = 'mFD'), dec = ',', sep = ';', header = TRUE, row.names = 1,
na.strings='NA')
# Trait compilation and ordination:
dimorphism <- ordered(sp_tr$dimorphism)
breeding_site <- ordered(sp_tr$breeding_site)
social_behavior <- ordered(sp_tr$social_behavior)
weight_max <- log(sp_tr$adult_weight_max)
social_group <- log(sp_tr$social_group_mean)
# Trait Matrix construction:
sp_tr_end <- data.frame(
main_diet = sp_tr$main_diet,
foraging_water_depth = sp_tr$foraging_water_depth,
foraging_location = sp_tr$foraging_location,
fasting_strategy = sp_tr$fasting_strategy,
female_sexual_maturity = sp_tr$female_sexual_maturity,
weaning = sp_tr$weaning,
gestation = sp_tr$gestation, inter_litter = sp_tr$inter_litter,
breeding_site = sp_tr$breeding_site,
social_group = sp_tr$social_group_mean,
social_behavior = sp_tr$social_behavior,
weight_max = sp_tr$adult_weight_max,
dimorphism = sp_tr$dimorphism)
rownames(sp_tr_end) <- rownames(sp_tr)
# Function weigthing vector:
v <- c(0.25, 0.25, 0.25, 0.25, 0.20, 0.20, 0.20, 0.20, 0.20, 0.5, 0.5, 0.5,
0.5)
# Gower distance calculation:
sp_tr_end$main_diet <- as.factor(sp_tr_end$main_diet)
sp_tr_end$foraging_water_depth <- as.factor(sp_tr_end$foraging_water_depth)
sp_tr_end$foraging_location <- as.factor(sp_tr_end$foraging_location)
sp_tr_end$breeding_site <- as.factor(sp_tr_end$breeding_site)
sp_tr_end$social_behavior <- as.factor(sp_tr_end$social_behavior)
sp_dist_tr <- cluster::daisy(sp_tr_end, metric = c('gower'),
type = list(symm = c(4)), weights = v)
# Principal coordinate analyses
Pcoa <- ade4::dudi.pco(ade4::quasieuclid(sp_dist_tr), scann = FALSE,
nf = 40)
sp_faxes_coord <- Pcoa$li[1:40]
# FUSE calculation:
FUSE_res <- mFD::fuse(
sp_dist = sp_dist_tr,
sp_faxes_coord = as.matrix(sp_faxes_coord),
nb_NN = 5,
GE = sp_tr$IUCN_num,
standGE = TRUE)
FUSE_res
FUSE_res2 <- mFD::fuse(
sp_dist = sp_dist_tr,
sp_faxes_coord = as.matrix(sp_faxes_coord),
nb_NN = 5,
GE = sp_tr$IUCN_50,
standGE = TRUE)
FUSE_res2
FUSE_res3 <- mFD::fuse(
sp_dist = sp_dist_tr,
sp_faxes_coord = as.matrix(sp_faxes_coord),
nb_NN = 5,
GE = sp_tr$IUCN_100,
standGE = TRUE)
FUSE_res3