| Title: | Multi-Layer Decomposition of Functional Community Restructuring |
|---|---|
| Description: | Implements the 'ASC-CFD' (Assemblage Shift Characterization - Community Functional Dynamics) framework for decomposing functional community restructuring into positional (centroid displacement), dispersive (functional dispersion), and boundary (convex hull volume) components. Tests each component against two null models: a sampling null model (individuals or replicates reassigned between communities) and a stratified trait-permutation null model, with a single global test when many communities are compared. Functional entities (species with similar traits) help detect replacement among similar species, and species-level leverage identifies the taxa driving functional shifts. Supports both temporal (paired) and spatial (pairwise) comparisons. |
| Authors: | Rogelio R. Muñoz-Li [aut, cre], Flavia Alvarez-Denis [aut] |
| Maintainer: | Rogelio R. Muñoz-Li <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.5.0 |
| Built: | 2026-10-16 08:17:25 UTC |
| Source: | https://github.com/v3ndetta96/ascent |
Calculates the absolute functional centroid (CWM), functional dispersion (FDis), and convex hull volume (FRic) for each community or site independently.
asc_baseline( traits, abund, dist_method = "gower", dim_retention = c("variance", "broken_stick"), var_tol = 0.8, na.rm = TRUE, correction = c("none", "sqrt"), type = NULL, weights = NULL )asc_baseline( traits, abund, dist_method = "gower", dim_retention = c("variance", "broken_stick"), var_tol = 0.8, na.rm = TRUE, correction = c("none", "sqrt"), type = NULL, weights = NULL )
traits |
A data frame or matrix of functional traits. |
abund |
A data frame or matrix of species abundances. |
dist_method |
Distance metric for the trait matrix. Default is "gower". |
dim_retention |
Character. Method for dimensionality reduction. Options are |
var_tol |
Numeric. Proportion of cumulative variance to retain. Default is 0.80. |
na.rm |
Logical. Remove missing values? Default is TRUE. |
correction |
Character. |
type, weights
|
Optional; passed unchanged to |
An S3 object of class ascfcd_base.
# Absolute metrics of each community (no contrasts): community-weighted # position on each axis (CWM), dispersion (FDis) and volume (FRic) base <- asc_baseline(birds_sim$traits, birds_sim$landscape) summary(base) # Compare FDis and FRic along the gradient from primary forest to farmland base$entities_results[, c("Entity", "FDis", "FRic")]# Absolute metrics of each community (no contrasts): community-weighted # position on each axis (CWM), dispersion (FDis) and volume (FRic) base <- asc_baseline(birds_sim$traits, birds_sim$landscape) summary(base) # Compare FDis and FRic along the gradient from primary forest to farmland base$entities_results[, c("Entity", "FDis", "FRic")]
Groups species with similar traits into functional entities by hierarchical
clustering (Gower distance and Ward's method by default). If neither
k nor h is given, the number of entities is chosen as the one
with the highest mean silhouette width. The result can be passed to
asc_null (A on counts summed by entity) and
asc_transitions (displacement between vs within entities),
which is the recommended way to detect replacement among functionally
similar species (redundancy or compensation).
asc_entities( traits, dist_method = "gower", hclust_method = "ward.D2", k = NULL, h = NULL, k_max = 15, B = 100, seed = NULL, correction = c("none", "sqrt"), type = NULL, weights = NULL )asc_entities( traits, dist_method = "gower", hclust_method = "ward.D2", k = NULL, h = NULL, k_max = 15, B = 100, seed = NULL, correction = c("none", "sqrt"), type = NULL, weights = NULL )
traits |
A data frame or matrix of functional traits (row names = species). |
dist_method |
Character. Distance metric. Default is |
hclust_method |
Character. Agglomeration method. Default is |
k |
Integer. Number of entities. If |
h |
Numeric. Height at which to cut the dendrogram (alternative to |
k_max |
Integer. Largest |
B |
Integer. Number of reference data sets for the gap statistic. Default 100. |
seed |
Integer or |
correction, type, weights
|
Passed to the trait distance; see
|
Three criteria are computed for k = 2, ..., k_max on the same tree:
Mean silhouette width (Rousseeuw 1987), on the trait
distance. Used to choose k by default. Below 0.25: no clear
groups; 0.25-0.5: weak structure.
Mojena's rule: first fusion height above the mean plus 1.25 standard deviations of all fusion heights.
Gap statistic (Tibshirani et al. 2001), on the PCoA
coordinates, with the "Tibs2001SEmax" rule. k = 1 means no
natural groups: the entities then discretise a continuum, which is still
useful, but conclusions should be checked with neighbouring values of
k.
In the validation (continuous traits of 42 butterfly species), the
silhouette choice (k = 13) separated compensation from directed change,
whereas very coarse entities (k = 5, Mojena's choice there) classified part
of a directed change as "within entities". With discrete traits,
h = 0 gives entities in the strict sense (species sharing exactly the
same trait combination); this use has not been evaluated by simulation.
An S3 object of class ascfcd_entities with
membership (named vector: species -> entity, accepted by
asc_null() and asc_transitions()), k,
entity_classification (species, entity and traits),
indices (silhouette and gap by k), suggestions
(k by silhouette, Mojena and gap), silhouette_max,
n_species_per_entity, distance_matrix, hclust_obj,
method and metric.
Rousseeuw, P. J. (1987). Silhouettes: a graphical aid to the interpretation and validation of cluster analysis. Journal of Computational and Applied Mathematics, 20, 53-65.
Tibshirani, R., Walther, G. & Hastie, T. (2001). Estimating the number of clusters in a data set via the gap statistic. Journal of the Royal Statistical Society B, 63, 411-423.
Mojena, R. (1977). Hierarchical grouping methods and stopping rules: an evaluation. The Computer Journal, 20, 359-363.
# Group the 24 species of birds_sim by their traits ent <- asc_entities(birds_sim$traits, k_max = 10, B = 50, seed = 1) # Suggested number of entities (silhouette, Mojena, gap) and their sizes summary(ent) # Is the change at "Logged" a reorganisation of the functional groups # (shift between entities) or a replacement among similar species (within)? res <- asc_paired(birds_sim$traits, birds_sim$counts, sites = birds_sim$samples$site, time = birds_sim$samples$time, ref_time = "Before") asc_transitions(res, entities = ent)$Logged$entities# Group the 24 species of birds_sim by their traits ent <- asc_entities(birds_sim$traits, k_max = 10, B = 50, seed = 1) # Suggested number of entities (silhouette, Mojena, gap) and their sizes summary(ent) # Is the change at "Logged" a reorganisation of the functional groups # (shift between entities) or a replacement among similar species (within)? res <- asc_paired(birds_sim$traits, birds_sim$counts, sites = birds_sim$samples$site, time = birds_sim$samples$time, ref_time = "Before") asc_transitions(res, entities = ent)$Logged$entities
Tests each ASC-CFD layer (position, dispersion, volume) against two
complementary null models, and dispatches on the class of x:
objects from asc_paired get one set of tests per
contrast (reference vs comparison);
objects from asc_pairwise get a single
global test over all communities at once (no p-value per pair).
The letters differ from version 0.1.x: A is now the sampling null model and B the stratified trait null model. The 0.1.x models (Curveball, SAD reshuffle and trait shuffle), written A0, B0 and C0 since 0.5.0, were removed.
asc_null(x, n_perm = 999, seed = NULL, stratum_size = 5, entities = NULL)asc_null(x, n_perm = 999, seed = NULL, stratum_size = 5, entities = NULL)
x |
An object of class |
n_perm |
Integer. Number of permutations. Default is 999. |
seed |
Integer or |
stratum_size |
Integer. Number of species per abundance stratum in null model B. Default 5 (the validated value). Strata group species of similar abundance; larger values approach the unstratified permutation. |
entities |
Optional. An object from |
The input object with null_models appended: a data frame
with one row per contrast, test and layer, and columns Contrast,
Test, Layer, Observed, Null_mean,
Null_sd, SES, P_upper, P_lower and
P_two (two-tailed, centred on the null mean). P-values are
and are not rounded. For pairwise objects,
site_contribution is also appended. null_settings records
the options used. Use summary() for a reading of each test.
H0: the communities are samples of the same community. Individuals are pooled and reassigned at random keeping sample sizes. When both states of a contrast have replicates, whole replicates are permuted instead (A by samples), which accounts for variation among replicates (individuals that are captured in groups inflate A by individuals). A needs counts of individuals; with relative abundances it is skipped with a warning.
H0: the shift does not depend on which traits the species have. Abundances
are kept and species coordinates are permuted only among species of similar
abundance (groups of stratum_size species ranked by mean abundance).
Stratification removes the bias of unrestricted trait permutation in
empirical trait spaces. Upper tail: the shift is directed by traits.
Lower tail: the shift is smaller than expected from the traits
(compensation). B has low power for compensation between similar species:
use entities for that. In the validation, B was slightly liberal for
dispersion (6.5\
captured in groups (7.2\
stratum_size = Inf gives the unstratified permutation among the
species present, which was biased in empirical trait spaces and is not
recommended.
With entities (from asc_entities or a named vector
assigning each species to an entity), A is repeated on counts summed by
entity. "A significant for species but not for entities", together with a
large fraction of the shift occurring within entities
(asc_transitions), indicates replacement among functionally
similar species (redundancy or compensation).
Statistics: mean distance of the community centroids to their common centroid (position), and the standard deviation among communities of FDis (dispersion) and FRic (volume). A global reassigns individuals among communities; B global applies one stratified trait permutation to all communities. Upper tail of A: communities differ more than samples of one community. Upper tail of B: the variation is organised by traits. Lower tail of B: less variation than expected from the traits (compensation among communities). The distance of each community to the common centroid is returned as a descriptive contribution.
Gower, J. C. (1971). A general coefficient of similarity and some of its properties. Biometrics, 27, 857-871.
# Paired contrasts (see ?birds_sim): five surveys per state at each site res <- asc_paired(birds_sim$traits, birds_sim$counts, sites = birds_sim$samples$site, time = birds_sim$samples$time, ref_time = "Before") res <- asc_null(res, n_perm = 99, seed = 1) # The Reading column interprets each test. At "Logged", A (sampling) and # B (traits) detect the shift in position: the change is real and directed # by the species' traits. At "Control" there is no evidence of change. summary(res) # The full table (one row per contrast, test and layer) res$null_models[res$null_models$Layer == "Position", ] # Many communities: one global test per layer instead of one p per pair pw <- asc_pairwise(birds_sim$traits, birds_sim$landscape) pw <- asc_null(pw, n_perm = 99, seed = 1) summary(pw)# Paired contrasts (see ?birds_sim): five surveys per state at each site res <- asc_paired(birds_sim$traits, birds_sim$counts, sites = birds_sim$samples$site, time = birds_sim$samples$time, ref_time = "Before") res <- asc_null(res, n_perm = 99, seed = 1) # The Reading column interprets each test. At "Logged", A (sampling) and # B (traits) detect the shift in position: the change is real and directed # by the species' traits. At "Control" there is no evidence of change. summary(res) # The full table (one row per contrast, test and layer) res$null_models[res$null_models$Layer == "Position", ] # Many communities: one global test per layer instead of one p per pair pw <- asc_pairwise(birds_sim$traits, birds_sim$landscape) pw <- asc_null(pw, n_perm = 99, seed = 1) summary(pw)
Calculates centroid displacement (Layer 1), dispersion shift (Layer 2 - FDis), and volume shift (Layer 3 - FRic) between paired states.
asc_paired( traits, abund, sites, time, ref_time, dist_method = "gower", dim_retention = c("variance", "broken_stick"), var_tol = 0.8, na.rm = TRUE, correction = c("none", "sqrt"), type = NULL, weights = NULL )asc_paired( traits, abund, sites, time, ref_time, dist_method = "gower", dim_retention = c("variance", "broken_stick"), var_tol = 0.8, na.rm = TRUE, correction = c("none", "sqrt"), type = NULL, weights = NULL )
traits |
A data frame or matrix of functional traits. |
abund |
A data frame or matrix of species abundances. |
sites |
A vector indicating the site identifier. |
time |
A vector indicating the temporal state. |
ref_time |
A character string specifying the reference state. |
dist_method |
Distance metric for the trait matrix. Default is "gower". |
dim_retention |
Character. Method for dimensionality reduction. |
var_tol |
Numeric. Proportion of cumulative variance to retain. Default is 0.80. |
na.rm |
Logical. Remove missing values? Default is TRUE. |
correction |
Character. |
type, weights
|
Optional; passed unchanged to |
An S3 object of class ascfcd.
Normalization: Delta FDis and Delta FRic are absolute differences, not normalized by the regional pool. Values are not directly comparable across studies with different species pools or trait scales. Only rDelta_C (position) is normalized by Dmax_regional.
FRic = NA: When a community has fewer species than retained PCoA axes,
the convex hull is geometrically undefined and FRic is set to NA,
which propagates to Delta_FRic.
Temporal replicates: When multiple rows share the same site and temporal state (e.g., three reference plots), their relative abundances are averaged (column means) before computing the centroid. This is equivalent to treating replicates as a single pooled community. Intra-state variability is not propagated to downstream metrics.
# birds_sim: two sites surveyed 5 times before and 5 times after an event. # At "Logged" the bird community changes; at "Control" nothing changes. res <- asc_paired(birds_sim$traits, birds_sim$counts, sites = birds_sim$samples$site, time = birds_sim$samples$time, ref_time = "Before") # Layer1_rDeltaC is the centroid shift (% of the functional space): it is # large at "Logged" and small at "Control". The last section ("Top Functional # Drivers") lists the species that moved the centroid most (see ?asc_transitions). summary(res) # Is each shift larger than sampling noise (A) and organised by traits (B)? res <- asc_null(res, n_perm = 99, seed = 1) summary(res)# birds_sim: two sites surveyed 5 times before and 5 times after an event. # At "Logged" the bird community changes; at "Control" nothing changes. res <- asc_paired(birds_sim$traits, birds_sim$counts, sites = birds_sim$samples$site, time = birds_sim$samples$time, ref_time = "Before") # Layer1_rDeltaC is the centroid shift (% of the functional space): it is # large at "Logged" and small at "Control". The last section ("Top Functional # Drivers") lists the species that moved the centroid most (see ?asc_transitions). summary(res) # Is each shift larger than sampling noise (A) and organised by traits (B)? res <- asc_null(res, n_perm = 99, seed = 1) summary(res)
Calculates spatial functional divergence across three layers: position (Delta C), dispersion (FDis), and volume (FRic).
asc_pairwise( traits, abund, dist_method = "gower", dim_retention = c("variance", "broken_stick"), var_tol = 0.8, na.rm = TRUE, correction = c("none", "sqrt"), type = NULL, weights = NULL )asc_pairwise( traits, abund, dist_method = "gower", dim_retention = c("variance", "broken_stick"), var_tol = 0.8, na.rm = TRUE, correction = c("none", "sqrt"), type = NULL, weights = NULL )
traits |
A data frame or matrix of functional traits. |
abund |
A data frame or matrix of species abundances. |
dist_method |
Distance metric for the trait matrix. Default is "gower". |
dim_retention |
Character. Method for dimensionality reduction. |
var_tol |
Numeric. Proportion of cumulative variance to retain. Default is 0.80. |
na.rm |
Logical. Remove missing values? Default is TRUE. |
correction |
Character. |
type, weights
|
Optional; passed unchanged to |
An S3 object of class ascfcd_pw.
Leverage direction: In pairwise mode, leverage is computed from Community_A toward Community_B. Reversing the pair order reverses the leverage signs. The direction is determined by alphabetical ordering of community names.
Normalization: Delta FDis and Delta FRic are absolute differences (see
asc_paired for details).
# Five communities along a gradient from primary forest to farmland pw <- asc_pairwise(birds_sim$traits, birds_sim$landscape) # One row per pair of communities; rDelta_C_pct is the centroid shift # between the two (% of the functional space) summary(pw) # The three most different pairs pr <- pw$pairwise_results head(pr[order(-pr$rDelta_C_pct), c("Community_A", "Community_B", "rDelta_C_pct")], 3) # To test whether the communities differ, see the global test in ?asc_null# Five communities along a gradient from primary forest to farmland pw <- asc_pairwise(birds_sim$traits, birds_sim$landscape) # One row per pair of communities; rDelta_C_pct is the centroid shift # between the two (% of the functional space) summary(pw) # The three most different pairs pr <- pw$pairwise_results head(pr[order(-pr$rDelta_C_pct), c("Community_A", "Community_B", "rDelta_C_pct")], 3) # To test whether the communities differ, see the global test in ?asc_null
Describes who moved the functional centroid (no p-values; for tests
see asc_null):
Species leverage: contribution of each species to the
centroid displacement (Layer 1). Leverages add up exactly to the
displacement for any reference point.
Partition: share of the displacement due to species shared by both states, gained (only in the comparison) and lost (only in the reference).
Entities (optional): share of the displacement that occurs between functional entities (their total abundances change) and within entities (which species dominates inside each entity changes). The two parts add up exactly to the displacement.
asc_transitions( x, ref = c("midpoint", "reference", "comparison"), entities = NULL, ... )asc_transitions( x, ref = c("midpoint", "reference", "comparison"), entities = NULL, ... )
x |
An object of class |
ref |
Character. Reference point for the projections:
|
entities |
Optional. An object from |
... |
Further arguments passed to or from other methods. |
Leverage of species is , where
is the unit vector of the displacement and the reference
point. The total does not depend on , but how it is shared among
species (and among shared, gained and lost species) does. The default
ref = "midpoint" (half-way between the two centroids) is symmetric:
it gives the same partition whichever state is called the reference, which
matters for pairwise comparisons. The partition also reports its minimum
and maximum across the three reference points; a wide range means the
partition should be interpreted with caution.
In version 0.1.1 the reference point was the reference centroid
(ref = "reference"); per-species values differ from 0.1.1 unless
that option is used.
An S3 object of class ascfcd_transitions: a list with one
element per contrast (or pair), each containing species_leverage
(columns Species, Group, Delta_p, Projection,
Leverage; species absent from both states are omitted),
partition (columns Group, Fraction,
Min_across_refs, Max_across_refs), entities
(Shift, Between, Within, Within_fraction, or
NULL), shift and ref.
res <- asc_paired(birds_sim$traits, birds_sim$counts, sites = birds_sim$samples$site, time = birds_sim$samples$time, ref_time = "Before") tr <- asc_transitions(res) # Species that moved the centroid at "Logged": positive leverage pushes it in # the direction of the change, negative leverage resists it head(tr$Logged$species_leverage) # Leverages add up exactly to the shift c(sum = sum(tr$Logged$species_leverage$Leverage), shift = tr$Logged$shift) # Share of the shift due to species shared, gained or lost tr$Logged$partitionres <- asc_paired(birds_sim$traits, birds_sim$counts, sites = birds_sim$samples$site, time = birds_sim$samples$time, ref_time = "Before") tr <- asc_transitions(res) # Species that moved the centroid at "Logged": positive leverage pushes it in # the direction of the change, negative leverage resists it head(tr$Logged$species_leverage) # Leverages add up exactly to the shift c(sum = sum(tr$Logged$species_leverage$Leverage), shift = tr$Logged$shift) # Share of the shift due to species shared, gained or lost tr$Logged$partition
Diagnostic tool to evaluate the quality of the PCoA-based functional space
constructed from a trait matrix. Intended for use before running core
analyses (asc_paired, asc_pairwise, etc.) to identify
potential distortion from negative eigenvalues or excessive dimensionality
reduction.
assess_functional_space( traits, dist_method = "gower", dim_retention = c("variance", "broken_stick"), var_tol = 0.8, correction = c("none", "sqrt"), type = NULL, weights = NULL )assess_functional_space( traits, dist_method = "gower", dim_retention = c("variance", "broken_stick"), var_tol = 0.8, correction = c("none", "sqrt"), type = NULL, weights = NULL )
traits |
A data frame or matrix of functional traits. |
dist_method |
Distance metric for the trait matrix. Default is |
dim_retention |
Character. Method for dimensionality reduction.
Options are |
var_tol |
Numeric. Proportion of cumulative variance to retain (used
when |
correction |
Character. |
type, weights
|
Optional; passed unchanged to |
The Gower distance is not strictly Euclidean, which means PCoA may produce negative eigenvalues. This function reports the full eigenvalue spectrum and computes a quality index so users can decide whether the functional space is an adequate representation of the original distance matrix.
A quality below 0.80 indicates that negative eigenvalues represent more than 20\
Reviewing the trait data for problematic variables.
Using correction = "sqrt": the square root of the Gower dissimilarity is Euclidean for complete data with constant weights (Gower 1971), so the PCoA has no negative eigenvalues. Its effect on the null-model tests has not been evaluated by simulation.
Using a different distance metric (e.g., "euclidean" for purely continuous traits).
A list of class ascfcd_space with:
Numeric. PCoA quality index (sum(positive_eig) / sum(abs(all_eig))). Values above 0.80 are generally acceptable.
Integer. Number of species in the trait matrix.
Integer. Number of traits.
Integer. Number of PCoA axes retained.
Numeric. Cumulative variance explained by retained axes.
Numeric vector. Relative variance per retained axis.
Integer. Count of negative eigenvalues.
Numeric. Percentage of total absolute eigenvalue represented by negative eigenvalues.
Numeric vector. All raw eigenvalues from PCoA.
# Check the functional space before any analysis q <- assess_functional_space(birds_sim$traits) # Quality >= 0.8 is adequate. FRic can only be computed in samples with more # species than retained axes. q # With quality < 0.8, compare with the Gower (1971) square-root correction assess_functional_space(birds_sim$traits, correction = "sqrt")# Check the functional space before any analysis q <- assess_functional_space(birds_sim$traits) # Quality >= 0.8 is adequate. FRic can only be computed in samples with more # species than retained axes. q # With quality < 0.8, compare with the Gower (1971) square-root correction assess_functional_space(birds_sim$traits, correction = "sqrt")
Simulated data used in the vignette and examples: functional traits of 24
bird species and counts of individuals in a paired design (with replicate
surveys) and along a landscape gradient. Generated by
data-raw/birds_sim.R.
birds_simbirds_sim
A list with four elements:
Data frame, 24 species (row names) x 4 traits:
Body_Mass (g), Beak_Length (mm), Diet (factor:
insects, fruit, seeds) and Forest_Dep (factor: no, yes).
Integer matrix, 20 surveys x 24 species. Two sites ("Logged", "Control"), each surveyed 5 times before and 5 times after an event. At "Logged", forest-dependent and fruit-eating species decline and small open-habitat species increase; at "Control" nothing changes.
Data frame describing the rows of counts: id,
site and time ("Before", "After").
Integer matrix, 5 communities (primary forest to farmland) x 24 species, one survey each.
Simulated; see data-raw/birds_sim.R in the package sources.
str(birds_sim, max.level = 1)str(birds_sim, max.level = 1)
Visualizes the functional trajectory (Centroid shift) and volume shift (Convex Hull) of a specific site/contrast in the PCoA space, alongside the species leverage.
## S3 method for class 'ascfcd' plot(x, contrast, type = c("both", "pcoa", "leverage"), n_sp = 10, ...)## S3 method for class 'ascfcd' plot(x, contrast, type = c("both", "pcoa", "leverage"), n_sp = 10, ...)
x |
An object of class |
contrast |
Character. The exact name of the site/contrast to plot. |
type |
Character. What to plot? |
n_sp |
Integer. Number of top species to display in the leverage plot. Default is 10. |
... |
Additional graphical arguments. |
A ggplot object (or patchwork object if type = "both").
Plots the hierarchical clustering dendrogram of the functional entities.
## S3 method for class 'ascfcd_entities' plot(x, ...)## S3 method for class 'ascfcd_entities' plot(x, ...)
x |
An object of class |
... |
Additional graphical arguments passed to |
No return value, called for side effects (plots a dendrogram).
Visualizes spatial functional restructuring (Centroid & Hull) between two communities.
## S3 method for class 'ascfcd_pw' plot(x, contrast, type = c("both", "pcoa", "leverage"), n_sp = 10, ...)## S3 method for class 'ascfcd_pw' plot(x, contrast, type = c("both", "pcoa", "leverage"), n_sp = 10, ...)
x |
An object of class |
contrast |
Character. The contrast to plot (e.g., "SiteA_vs_SiteB"). |
type |
Character. What to plot? |
n_sp |
Integer. Number of top species to display. Default is 10. |
... |
Additional graphical arguments. |
A ggplot object.
Visualizes the top species driving functional centroid displacement.
## S3 method for class 'ascfcd_transitions' plot(x, contrast, n_sp = 10, ...)## S3 method for class 'ascfcd_transitions' plot(x, contrast, n_sp = 10, ...)
x |
An object of class |
contrast |
Character. The contrast to plot. |
n_sp |
Integer. Number of top species to display. Default is 10. |
... |
Additional graphical arguments. |
A ggplot object.
Provides a concise, multi-layer overview of the paired ASC-CFD analysis, including null models and top functional drivers.
## S3 method for class 'ascfcd' summary(object, ...)## S3 method for class 'ascfcd' summary(object, ...)
object |
An object of class |
... |
Further arguments passed to or from other methods. |
Invisibly returns a data frame with the displacement metrics.
Provides an overview of the baseline functional topology of the evaluated entities.
## S3 method for class 'ascfcd_base' summary(object, ...)## S3 method for class 'ascfcd_base' summary(object, ...)
object |
An object of class |
... |
Further arguments passed to or from other methods. |
Invisibly returns the entities results data frame.
Provides an overview of the species clustering into functional entities.
## S3 method for class 'ascfcd_entities' summary(object, ...)## S3 method for class 'ascfcd_entities' summary(object, ...)
object |
An object of class |
... |
Further arguments passed to or from other methods. |
Invisibly returns the classification data frame.
Provides a comprehensive overview of the spatial network ASC-CFD analysis.
## S3 method for class 'ascfcd_pw' summary(object, ...)## S3 method for class 'ascfcd_pw' summary(object, ...)
object |
An object of class |
... |
Further arguments passed to or from other methods. |
Invisibly returns the pairwise results data frame.
For each contrast, shows the species with the largest leverage, the partition of the centroid displacement among shared, gained and lost species (with its range across reference points) and, if entities were given, the split between and within entities.
## S3 method for class 'ascfcd_transitions' summary(object, n_sp = 5, ...)## S3 method for class 'ascfcd_transitions' summary(object, n_sp = 5, ...)
object |
An object of class |
n_sp |
Integer. Number of top species to display per contrast. Default is 5. |
... |
Further arguments passed to or from other methods. |
Invisibly returns the object.