Package 'RecruitNetP'

Title: Analysis of Recruitment Networks
Description: Analyze recruitment networks and patterns of plant-plant interactions.
Authors: Alicia Montesinos-Navarro [aut, cph] (ORCID: <https://orcid.org/0000-0003-4656-0321>), José Luis Garrido [aut, cph] (ORCID: <https://orcid.org/0000-0002-6859-4234>), Miguel Verdú [aut, cph] (ORCID: <https://orcid.org/0000-0002-9778-7692>), Julio M. Alcántara [aut, cph] (ORCID: <https://orcid.org/0000-0002-8003-7844>), Verónica Cruz-Alonso [ctb] (ORCID: <https://orcid.org/0000-0002-0642-036X>), Francisco Rodriguez-Sanchez [aut, cre, cph] (ORCID: <https://orcid.org/0000-0002-7981-1599>)
Maintainer: Francisco Rodriguez-Sanchez <[email protected]>
License: GPL (>= 3)
Version: 0.0.0.9000
Built: 2026-05-23 09:44:27 UTC
Source: https://github.com/EcologyR/RecruitNetP

Help Index


Accumulation curve of network dimensions

Description

Uses plot accumulation curves to assess whether the estimates of the number of nodes, links, and link density (a.k.a. connectance) are stable (see Pulgar et al. 2017 for other descriptors). The function accum_curve plots accumulation curves for parameters that can be obtained with package igraph (Csardi & Nepusz, 2006).

NOTE: This function is intended for data sets organised in multiple plots of the same community or locality.

Usage

accum_curve(
  int_data,
  property = c("vcount", "ecount", "edge_density"),
  k = 100
)

Arguments

int_data

data frame containing interaction data.

property

property: indicates the network property, obtained from igraph functions, which accuracy is being evaluated. Only three options are currently available:

  • vcount: accuracy of the estimated number of nodes (using igraph function "vcount").

  • ecount: accuracy of the estimated number of canopy-recruit interactions (using igraph function "ecount").

  • edge_density: accuracy of the estimated network connectance (using igraph function "edge_density).

k

An integer number specifying the number of random repetitions of subsets of n plots. In each of the k repetitions, a subset of n randomly chosen plots is combined to build a partial network for which the indicated property is estimated. High values provide more confident estimates of the accuracy, but the function may take long time if k >> 100.

Value

The function returns a list of two objects:

  • A plot representing the mean and 95% Confidence interval (i.e. 1.96 times the standard error) of the estimate of the property selected when an increasing number of randomly selected plots are considered.

  • A data frame with the cumulative values of the property for each repetition of k plots. Provided so you can prepare your own customized accumulation plot.

Examples

accum_links <- accum_curve(Amoladeras_int, property="ecount", k=10)
head(accum_links$Data)
accum_links$Plot

Amoladeras cover data

Description

Amoladeras cover data

Usage

Amoladeras_cover

Format

An object of class data.frame with 282 rows and 4 columns.


Amoladeras interaction data

Description

Amoladeras interaction data

Usage

Amoladeras_int

Format

An object of class data.frame with 824 rows and 4 columns.


Calculate different association indices considering different interaction types.

Description

Calculates different metrics to characterize the interaction strength for each pairwise interaction, based on the number of recruits found under the canopy species and in the "Open" ground. Several indices have been proposed to assess how much recruitment is affected by the canopy species relative to the species performance in the absence of canopy plants (i.e. in open), each of them with its own particularities. In the context of recruitment interactions, the most frequently used index is the Relative Interaction Index (RII; Armas et al., 2004), and some studies have recently used the additive and commutative symmetry intensity indices (NIntA and NIntC) y Diaz-Sierra et al. (2017). However, these indices are not well suited for comparisons of interaction strength between pairs of species within a local community, so the Normalized Neighbour Suitability index (Ns; Mingo, 2014) should be preferred (Alcantara et al. 2025). The function associndex calculates all the four indices besides providing the density of recruits under the canopy and in the open, and the data used to calculate it (relative cover and number of recruits in each microhabitat). **IMPORTANT NOTE: Data on recruitment in Open is required to calculate these indices. Input: The canopy-recruit interactions data set and the canopy cover data set

Usage

associndex(
  int_data,
  cover_data,
  expand = c("yes", "no"),
  rm_sp_no_cover = c("allsp", "onlycanopy"),
  threshold_density = NULL
)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

expand

Expands the data frame to include the non-detected interactions between every pair of species that occur in the study site, assigning values of 0 to the variables Fcr and Dcr. Explanation of its options:

  • yes: Generates all possible interactions between canopy and recruit species in the study site (i.e. detected and non-detected), adding values of interaction frequency of 0 to the non-detected interactions.

  • no: Considers only the pairwise interactions actually detected in the study site.

rm_sp_no_cover

rm_sp_no_cover: Defines the filtering behavior, specifying which species should be removed based on the availability of cover data and the type of interaction of interest. Explanation of its options:

  • allsp: removes any species that lacks cover data (both canopy and recruit species).

  • onlycanopy: removes only canopy species lacking cover data, retaining recruit species even if they lack cover data.

threshold_density

threshold_density: indicates a threshold to retain only those interactions in which the observed density is below the threshold (i.e. Dcr < thr & Dro < thr). This is required to avoid the use of interactions based on very few recruits which may have occurred by chance under a very scarce canopy species. These cases will result in a large overestimation of Dcr, likely being spurious outlayers. If no threshold value is provided or it is set to NULL, the function estimates a threshold value based on recruitment density outliers according to a Weibull distribution: a value is an outlier if it is above the limit where less than 1 observation is expected. Explanation of its options:

  • A positive value. High values provide more chance to include potentially spurious interactions, unless such a high density is reliable based on the knowledge of the study system. A way to decide the threshold value would consist in identifying possible outlayers in the distribution of recruitment densities (Dcr and Dro).

  • NULL: use package extremevalues to find the density threshold value (K) above which, according to the Weibull distribution, less than 1 observation is expected given the number of observations in the sample.

Value

a data frame with the following information for each canopy-recruit interaction with the following information:

  • Canopy: canopy species.

  • Recruit: recruit species.

  • Fcr: frequency of recruitment, as the number of recruits found under that canopy species.

  • Ac: Area occupied by the canopy species in the study site, in m^2^ (or m when relative cover is measured with transects).

  • Fro: frequency of recruitment, as the number of recruits in Open interspaces. - Ao: Area occupied by open interspaces in the study site in m^2^ (or m when relative cover is measured with transects).

  • Dcr: Density of recruits under a canopy species: $Fcr/Ac$.

  • Dro: Density of recruits in open interspaces: $Fro/Ao$.

  • max_Recr: maximum recruitment density of a species in the study site (i.e., under any canopy species or "Open").

  • Ns: Normalized Neighbour Suitability index: $(Dcr - Dro) / maxRecr$.

  • NintC: Commutative symmetry intensity index: $2*(Dcr - Dro)/((Dcr + Dro)+abs(Dcr-Dro))$

  • NintA: Additive symmetry intensity index: $2*(Dcr - Dro)/((Dro) + abs(Dcr-Dro))$

  • RII: Relative Interaction Index: $(Dcr - Dro)/(Dcr + Dro)$

Examples

associndex (Amoladeras_int, Amoladeras_cover, expand = "yes",
rm_sp_no_cover = "allsp", threshold_density=NULL)
associndex (Amoladeras_int, Amoladeras_cover, expand = "yes",
rm_sp_no_cover = "onlycanopy", threshold_density=NULL)
associndex (Amoladeras_int, Amoladeras_cover, expand = "no",
rm_sp_no_cover = "allsp", threshold_density=NULL)
associndex (Amoladeras_int, Amoladeras_cover, expand = "yes",
rm_sp_no_cover = "onlycanopy", threshold_density=NULL)

Identifies whether a species acts as depressing, enhancing or neutral

Description

Tests whether a canopy species has a depressing, enhancing or neutral effect on recruitment in general (i.e., at the community level) compared to the "Open", independently considering all the recruit species together.

Usage

canopy_service_test(int_data, cover_data)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

Value

Data frame with the same variables provided by the function int_significance() but without distinguishing between recruit species.

Examples

canopy_service_test(Amoladeras_int, Amoladeras_cover)

Check cover data format

Description

The canopy cover data set contains the abundance of each canopy species in each plot. The minimum columns required are:

  • Plot. As in the interactions data set.

  • Canopy. As in the interactions data set.

  • Cover. Cover of the canopy species (and "Open" interspaces), measured as % of the total area sampled where a recruit would be ascribed to the interaction with the canopy plant (or to be recruiting in "Open", away from established plants). For example, following Alcantara et al. (2019), in plants with branches less than 1.5m above ground (e.g. small shrubs and treelets), it would be the area of projection of their canopy on the ground, while in tall trees it can be the area extending 0.5m around the trunk's base or large surfacing roots.

  • Sampled_distance_or_area. Total area of each plot or distance of each transect (in m^2^ or m, respectively).

Usage

check_cover(cover_data = NULL)

Arguments

cover_data

data frame with the abundance of each canopy species in each plot.

Value

The function will return error(s) if problems are detected. Otherwise an OK message.

Examples

check_cover(Amoladeras_cover)

Check interaction data format

Description

A canopy-recruit interactions data set must contain, at least, the raw data of the observed frequency of each canopy-recruit pair in each sampling unit (e.g. plot, quadrat, transect). For standardization, the columns in this data set must be named:

  • Plot. Plot ID. Uniquely identifies each of the sampling units over which the interactions have been surveyed. Include this column even if you only surveyed one plot.

  • Canopy. Name of the canopy species. If your survey included any type of open interspaces (e.g., canopy gaps, open ground, spaces away from a canopy plant), include these as a single node named "Open" (note the capital "O"). If you use full scientific names (e.g. latin binomials), concatenate the epithets with a lower dash (e.g. Olea_europaea).

  • Recruit. Name of the recruit species. If you use full scientific names, concatenate the epithets with a lower dash (e.g. Olea_europaea).

  • Frequency. Frequency of the canopy-recruit interaction in the study plot, indicated as number of individuals of the recruit species found under individuals of the canopy species.

Usage

check_interactions(int_data = NULL)

Arguments

int_data

data frame containing interaction data.

Value

The function will return error(s) if problems are detected. Otherwise an OK message.

Examples

int_data <- load_interactions()
check_interactions(int_data)

Subset data from one study site

Description

this function is to be used with datasets containing multiple study sites

Usage

comm_subset(data = NULL, site = NULL)

Arguments

data

a dataframe. Must contain a column named Study_site

site

A character string indicating the name of the study site

Value

a dataframe

Examples

data<-load_interactions()
comm_subset(data, site="Amoladeras")

Combine cover data with interaction data.

Description

Combine interactions and cover data sets from a study site into a single data frame. For study sites where data has been collected in several plots, this function collapses the information into a single value per pairwise interaction. You can choose whether or not the output contains all possible pairs of interacting species (including those that were not observed, which are assigned weight = 0) and whether or not to remove species lacking information on canopy cover.

Usage

comm_to_RN(
  int_data,
  cover_data,
  expand = c("yes", "no"),
  rm_sp_no_cover = c("allsp", "onlycanopy")
)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

expand

Indicates whether to expand the dataframe to include the non-detected interactions between every pair of species that occurs in the study site, assigning values of 0 to their frequency. It can take two possible values:

  • yes: Generates all possible interactions between canopy and recruit species in the study site (i.e. detected and non-detected), adding values of interaction strength of 0 to the non-detected interactions.

  • no: Considers only the pairwise interactions that were actually detected in the study site.

rm_sp_no_cover

Defines the filtering behavior, specifying which species should be removed based on the availability of cover data. It can take two options:

  • allsp: removes all species lacking cover data (both canopy and recruit species).

  • onlycanopy: removes only canopy species lacking cover data, retaining recruit species even if they lack cover data.

Value

Data frame with the following information for each pair of species:

  • Canopy. Name of the canopy species, including "Open" interspaces. If you use full scientific names, concatenate the epithets with a lower dash (e.g. Olea_europaea).

  • Recruit. Name of the recruit species. If you use full scientific names, concatenate the epithets with a lower dash (e.g. Olea_europaea).

  • Ac: Area (in m^2^), (or m when relative cover is measured with transects) occupied by the canopy species (or "Open" interspaces) in the total area sampled in the study site.

  • Ar. Area (in m^2^), (or m when relative cover is measured with transects) occupied by the recruit species (observed as adults), in the total area sampled in the study site.

  • Fcr: frequency of recruitment, in number of recruits by canopy-recruit pair.

  • Icr: incidence of the interaction, as number of plots where it was observed.

  • Pcr: presence/absence (1/0) of the interaction in the study site. This provides the "unweighted" version of the adjacency matrix.

Examples

df <- comm_to_RN(Amoladeras_int, Amoladeras_cover, expand="yes",
rm_sp_no_cover="allsp")
head(df)

Download RecruitNet database from Zenodo

Description

Download latest version of the RecruitNet database (Verdú et al. 2023, doi:10.1002/ecy.3923).

Usage

download_RN(path = getwd(), destfile = "RN.zip", unzip = TRUE)

Arguments

path

character. Path to folder where the RecruitNet database should be saved.

destfile

character. Name of the zip file to be saved.

unzip

Logical. Uncompress the zip file? Default is TRUE.

Value

A zip file or two CSV files, depending if unzip is TRUE.


Species functional role in the general recruitment network

Description

provides summary information of the frequency of species of each functional role and the classification of species in each role.

Usage

funtopol_rec(int_data, cover_data)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

Value

A list with two elements, one with descriptors of the networks and another with the role of each species.

The first element of the list provides the following information:

  • Num. nodes: Total number of nodes in the network.

  • Num. edges: Total number of links in the network.

  • Connectance: Proportion of links observed relative to all the possible links (C). In the case of recruitment networks, we use the formula $C = L /(N^2 - N)$ since the node "Open" does not act as a recruit (i.e. Open is represented by a row of zeroes in the adjacency matrix).

  • Num. non-trivial SCCs: Number of SCCs formed by more than one node in the network.

  • Num. core species: Number of species in the core SCC.

  • Prop. core species: Proportion of species in the core relative to the total number of species in the network.

  • Num. satellite species: Number of satellite species in the network.

  • Prop. satellite species: Proportion of satellite species relative to the total number of species in the network.

  • Num. disturbance-dependent transients: Number of disturbance-dependent transient species in the network.

  • Prop. disturbance-dependent transients: Proportion of disturbance-dependent transient species relative to the total number of species in the network.

  • Num. strict transients: Number of strict transient species in the network.

  • Prop. strict transients: Proportion of strict transient species relative to the total number of species in the network.

  • Qualitative Persistence: The sum of the proportion of core and satellite species. The second element of the list, provides the role for each plant species in the network, whose interpretations differ in each plant-plant interaction type. Each node (i.e. species) can be:

  • Part of the core core. In the case of general recruitment networks, the direction of the links represents that the space occupied by canopy species (predecessor node) will be replaced by the species recruiting under its canopy (successor node). In this case, all species in the core must recruit, at least, under the canopy of another core species, and allow the recruitment of at least another core species.

  • A satellite species: these are non-core species that can be reached from some core species, following the direction of the arrows. In general recruitment networks, these are species that recruit under the canopy of some core species but that do not show recruitment of any core species under their canopy.

  • A disturbance-dependent transient species: these are species that can be reached from the "Open" node but not from core or satellite species (i.e. for example, pioneer species that only recruit away from established plants).

  • A strict transient species: a species that cannot be reached from any other node. In the case of general recruitment networks strict transients are those species that do not recruit in the studied local assemblage (e.g., a pioneer species in a mature forest patch or a relict species at it distribution limit).

Examples

funtopol_rec(Amoladeras_int,Amoladeras_cover)

Statistical significance of interactions

Description

conducts statistical tests for each pairwise interaction, indicating whether the effect of the canopy species on recruitment is enhancing (i.e. positive), depressing (i.e. negative), neutral, or whether it could not be tested due to low sample size. IMPORTANT NOTE: Data on recruitment in Open is required for the tests. To assess whether recruitment is affected by a given canopy species compared to the "Open" it is used an exact binomial test or a chi square test (if the number of recruits is large enough so that the expected frequencies are larger than 5). The tests address the null hypothesis that recruitment is as frequent under a given canopy species as it is in open interspaces. Thus, we use these tests as a goodness-of-fit tests. The logic is that, if recruitment were neutral regarding the microhabitat, we would observe that the number of recruits under canopy would be exactly proportional to the relative cover of each microhabitat. If the null hypothesis is rejected, we would conclude that recruitment is affected (enhanced or depressed) by the canopy species compared with the prospects of recruitment when seeds are dispersed away from established plants. When the exact binomial test is applied to canopy-recruit pairs with very low number of recruits, it may be impossible to reject the null hypothesis even if all the recruits occurred in the less likely microhabitat. In such cases, one might conclude that the interaction has a neutral effect when it is actually not possible to reach a conclusion. We classify these cases as "not testable".

Usage

int_significance(int_data, cover_data, int_type = c("rec", "fac", "comp"))

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

int_type

Indicates the type of plant-plant interaction that will be analyzed: general recruitment, recruitment enhancement (i.e. facilitation) or recruitment depression (i.e. competition). Explanation of its options:

  • rec: All the pairwise interactions observed will be in the output. Focuses on canopy-recruit interactions considering that every recruit growing under the canopy of another plant may occupy that space in the future, thus having a potentially positive effect on the recruit species population. Therefore, even a single observation is considered an interaction. This type of networks considers every species present in the study system, whether as a canopy or as a recruit, as a node in the network. It also includes "Open" as a particular node since some species may recruit away from established plants. Non-detected interactions are also considered since zero frequency can provide evidence of a very negative interaction if the expected frequency under the canopy species is large.

  • fac: Only those pairwise interactions that resulted in recruitment enhancement will be in the output. Focuses on interactions with a significantly higher recruitment density under canopy than in "Open" (i.e. facilitation). Non-detected interactions are not considered and "Open" is not included as a node, although its relative cover is considered as part of the sampling area.

  • comp: Only those pairwise interactions that resulted in a recruitment depression will be in the output. Focuses on interactions with a significantly lower recruitment density under canopy than "Open" (i.e. competition). Non-detected interactions are considered (i.e. expanding with 0 all possible interactions in the study system), as the absence of recruitment of a species under a given canopy can reflect a particularly strong depression of recruitment under that canopy species. "Open" is not included as a node, although its relative cover is considered as part of the sampling area.

Value

a data frame with the following information for each recruit-canopy interaction with the following information:

  • Canopy: Canopy species

  • Recruit: Recruit species

  • Fcr: frequency of recruitment, as the number of recruits found under that canopy species.

  • Ac: Area (in m^2^), (or m when relative cover is measured with transects) occupied by the canopy species in the study site.

  • Fro: frequency of recruitment in open interspaces.

  • Ao: Area (in m^2^), (or m when relative cover is measured with transects) occupied by the open interspaces in the study site.

  • testability: Testability indicates the smallest p-value that a binomial test will estimate based in a given number of recruits. If this p-value is above the reference p-value (typically 0.05), then you have too few cases (number of recruits) to ever reject the null hypothesis, and the interaction is not testable.

  • Significance: p-value of the chi square or binomial test assessing the null hypothesis that Fcr and Fro are equal to the expected frequencies based on the relative cover of each of the two microhabitats: $Ac/(Ac+Ao)$ and $1-(Ac/(Ac+Ao))$

  • Test_type: Indicates whether, depending on the sample size, a chi square or binomial test has been conducted.

  • Effect_int: Indicates, for each interaction, whether the analysis classifies it as "Enhancing", "Depressing", "Neutral" or "Not Testable".

Examples

int_signif_rec <- int_significance(Amoladeras_int, Amoladeras_cover, int_type = "rec")
head(int_signif_rec)

int_signif_fac <- int_significance(Amoladeras_int, Amoladeras_cover, int_type = "fac")
head(int_signif_fac)

int_signif_comp <- int_significance(Amoladeras_int, Amoladeras_cover, int_type = "comp")
head(int_signif_comp)

Load canopy cover data from RecruitNet database

Description

Load canopy cover data from RecruitNet database

Usage

load_cover(path = getwd())

Arguments

path

Path to folder containing the 'CanopyCover.csv' file. If the file is not present, the latest version of the RecruitNet database (Verdú et al. 2023, doi:10.1002/ecy.3923) will be downloaded automatically.

Value

a data frame containing canopy cover data

Examples

cover_data <- load_cover()

Load interaction data from RecruitNet database

Description

Load interaction data from RecruitNet database

Usage

load_interactions(path = getwd())

Arguments

path

Path to folder containing the 'RecruitNet.csv' file. If the file is not present, the latest version of the RecruitNet database (Verdú et al. 2023, doi:10.1002/ecy.3923) will be downloaded automatically.

Value

a data frame containing interaction data

Examples

int_data <- load_interactions()

Calculate width of canopy service and recruitment niches

Description

Calculate width of canopy service and recruitment niches

Usage

node_degrees(int_data, cover_data, int_type = c("rec", "fac", "comp"))

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

int_type

Indicates the type of plant-plant interaction that will be presented in the output matrix: general recruitment, recruitment enhancement (i.e. facilitation) or recruitment depression (i.e. competition). It may take three possible values:

  • rec: Estimates the node degree based on all plant-plant interaction that contribute to recruitment.

  • fac: Estimates the node degree based on only those pairwise interactions that enhance recruitment. Not every observed interaction in the field has to be present in the matrix. In this case non-detected interactions are not considered and "Open" is not included as a canopy species category.

  • comp: Estimates the node degree based on only those pairwise interactions that depress recruitment. Not every observed interaction in the field has to be present in the matrix. However, in this case non-detected interactions are considered (i.e. expanding with 0 all possible interactions in the study system). "Open" is not included as a canopy species category.

Value

The output depends on the type of interaction considered. For the recruitment networks it returns a single data frame with the following information:

  • Node: plant species (either as canopy or recruit)

  • Ac: Area of the canopy species (and "Open" interspaces), measured as the distance (m, in transects) or area (m^2^, in plots) used to estimate canopy cover in the study site.

  • canopy_service_width: the number of species that recruit under a given canopy species (i.e., the canopy species' out-degree); this can be interpreted as the width of its canopy service.

  • canopy_contribution: number of recruits of any species associated with the canopy species. When the degrees are weighted by the frequency of recruitment (Fcr), then it can be interpreted as the contribution of the canopy species to the multispecific sapling bank.

  • effective_canopy_service: The weighted degrees are transformed to the effective number of partners, accounting for the dominance of certain interactions in the recruit bank. The effective canopy service is estimated as e^H, where H is Shannon's index of diversity calculated for a canopy species from Fcr.

  • recruitment_niche_width: number of canopy species that allow its recruitment (the recruit species' in-degree); this can be interpreted as the width of its recruitment niche.

  • recruit_bank_abundance: number of recruits of a species in the study site. When the degrees are weighted by the frequency of recruitment (Fcr), then it can be interpreted as species abundance in the recruit bank.

  • effective_recruitment_niche: The weighted degrees are transformed to the effective number of partners, accounting for the dominance of certain interactions in the recruit bank. The effective recruitment niche width is estimated as $e^H$, where H is Shannon's index of diversity calculated for a recruit species from Fcr.

For facilitation or recruitment depressing interactions, the output consists in two data frames, one for the canopy species and another for the recruit species. The data frame with information for the canopy species provides the following information:

  • Nurse (or Canopy) sp: Canopy species.

  • Ac: Area of the canopy species (and "Open" interspaces), measured as the distance (m, in transects) or area (m^2^, in plots) used to estimate canopy cover in the study site.

  • N enhanced (or depressed) recruit sp: number of species whose recruitment is enhanced (or depressed) under its canopy, this can be interpreted as the width of its enhancing of (depressing) effect.

The data frame with information for the recruit species contains the following information:

  • Facilitated (or recruit) sp: Recruit species.

  • N_ind: number of recruits of the facilitated (or depressed) species in the study site.

  • N enhancing (or depressing) canopy sp: number of canopy species that enhance its recruitment (i.e. nurse species) or depress it (i.e. competing species). These can be interpreted as the width of its niche of nurses or competitors.

Examples

out <- node_degrees(Amoladeras_int, Amoladeras_cover, int_type="rec")
head(out)

calculates eigenvector centrality and the two measures of extended niche.

Description

calculates eigenvector centrality and the two measures of extended niche.

Usage

node_topol(int_data, cover_data, int_type = c("rec", "fac", "comp"))

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

int_type

Indicates the type of plant-plant interaction that will be presented in the output: general recruitment, recruitment enhancement (i.e. facilitation) or recruitment depression (i.e. competition).

  • rec: Estimates eigenvector centrality and extended neighborhoods for the general recruitment network.

  • fac: Estimates eigenvector centrality and extended neighborhoods for the facilitation network.

  • comp: Estimates eigenvector centrality and extended neighborhoods for the competition network.

Value

data frame

a data frame with estimates of the implications of each plant species in indirect interactions with the rest of species, both as canopy and recruit. Specifically, the estimates provided are the following: For recruitment networks:

  • Eigenvector centrality: provides the dominant eigenvector of the adjacency matrix of the interactions network. Its entries are interpreted as the centrality of each node. A node is more influential if it is connected to other influential nodes. In the case of recruitment networks, it has been associated with the persistence of species (Alcantara and Rey 2012; Alcantara et al. 2017): species with 0 eigenvector centrality have the lowest probability of persisting in the local community.

  • Extended canopy service: The extended canopy service of a species is defined as the number of other species whose recruitment it enables, directly or indirectly. It reflects an expansion of the species' out-degree in the interaction network, capturing its broader influence on the recruitment dynamics within the community. Using the logic of replacement dynamics, through a temporal series of replacements, a spatial patch will be dominated successively by plants of different species. The legacies of each species on the soil may remain for long time, so the occupation of a patch by one species can affect the recruitment of many others. From a functional perspective, it can be interpreted in terms of how easily disturbances associated with one species may pervade to the rest of species directly or indirectly; for example, a pest decimating the population of one species would affect many or few other species depending on the size of its extended canopy service.

  • Extended recruitment niche: The number of species in the community whose presence may allow eventually (directly and indirectly) the recruitment of the focal species. It represents an extension of the species' in-degree, capturing its dependence on the broader network for successful recruitment. From a functional perspective, a species with a large extended recruitment niche will be more susceptible to pests affecting any species of the community, but at the same time it may benefit from the increase in abundance of any species in its neighborhood. For facilitation networks:

  • Eigenvector centrality: Provides the dominant eigenvector of the adjacency matrix of the interactions network, and its entries are interpreted as the centralities of the nodes. It provides a relative value (i.e., proportionality) indicating for each nurse plant, the extent to which it tends to facilitate—directly or indirectly—those species that in turn facilitate many others. The centrality of a species is proportional to the sum of the centralities of the species it facilitates.

  • Extended nurse service: The number of species that a given species facilitates, either directly or indirectly (i.e., the number of nodes that can be reached from a given node).

  • Extended facilitated niche: The number of nurse species that either directly promote the recruitment of a given species or indirectly facilitate the recruitment of its own nurse plants (i.e. the number of nodes that can reach this node). A high value indicates that this species recruits under nurse plants that themselves recruit under other nurse plants. This metric can reflect how sensitive a species is to the loss of nurse plants, especially when the ratio between the number of nurse species (i.e., degree) and the extended recruitment niche is low. For competition networks:

  • Eigenvector centrality: Provides a relative value (i.e., proportionality) indicating for each canopy species, the extent to which it tends to depress the recruitment of those species that, in turn, depresses many others when they act as canopy. The centrality of a species is proportional to the sum of the centralities of the species it negatively affects.

  • Extended competitor effect: The number of species whose recruitment is depressed by a given canopy species, either directly or indirectly depressing its depressors (i.e., the number of nodes that can be reached from a given node). The odd or even number of links in the chain can lead to different outcomes, with even-numbered chains potentially canceling out some effects, while odd-numbered chains can amplify them.

  • Extended competitors niche: A high value indicates that the recruitment of this species is depressed by species whose recruitment is depressed by other recruitment-depressing canopy species. It represents the number of recruitment-depressing canopy species that either directly depress its recruitment, or indirectly affect the recruitment of its depressor canopy species (i.e., the number of nodes that can reach this node). The odd or even number of links in the chain can lead to different outcomes, with even-numbered chains potentially canceling out some effects, while odd-numbered chains can amplify them. This metric can reflect the extent to which a species can escape its depressors due to the presence of other species that suppress the recruitment of its depressors, especially when the ratio between the number of depressing canopy species (i.e., degree) and the extended depressed niche is low.

Examples

summary_node_topol_rec <- node_topol(Amoladeras_int,Amoladeras_cover, int_type="rec")
head(summary_node_topol_rec)

summary_node_topol_fac <- node_topol(Amoladeras_int,Amoladeras_cover, int_type="fac")
head(summary_node_topol_fac)

summary_node_topol_comp <- node_topol(Amoladeras_int,Amoladeras_cover, int_type="comp")
head(summary_node_topol_comp)

Recruitment niche: community-level effects on species recruitment

Description

tests whether the presence of vegetation (i.e any canopy species) compared to the "Open", enhances, depresses or has a neutral effect on the recruitment of a given recruit species. Input:The canopy-recruit interactions dataset and the canopy cover dataset (details as explained in int_significance() documentation).

Usage

recruitment_niche_test(int_data, cover_data)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

Value

The same variables provided by the function int_significance() but without distinguishing between canopy species.

Examples

recruitment_niche_test (Amoladeras_int, Amoladeras_cover)

Remove species with no cover data

Description

Remove the species from the interaction database that do not have cover data. For rec interaction type the function removes any species without cover data from the interactions database, and for comp or fac, it removes only canopy species without cover data keeping recruit species without cover data.

Usage

remove_no_cover(
  int_data,
  cover_data,
  rm_sp_no_cover = c("allsp", "onlycanopy")
)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

rm_sp_no_cover

Options:

  • allsp: removes any species without cover data.

  • onlycanopy: removes only canopy species without cover.

Value

a data frame

Examples

remove_no_cover (Amoladeras_int, Amoladeras_cover, rm_sp_no_cover = "allsp")
remove_no_cover (Amoladeras_int, Amoladeras_cover, rm_sp_no_cover = "onlycanopy")

Basic network dimensions

Description

Calculates basic descriptors of the interactions network, such as its size described by the number of nodes and links, and its complexity, which is proportional to network connectance.

Usage

RN_dims(int_data, cover_data, int_type = c("rec", "fac", "comp"))

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

int_type

Indicates the type of plant-plant interaction that will be analyzed: general recruitment, recruitment enhancement (i.e. facilitation) or recruitment depression (i.e. competition). Explanation of its options:

  • rec: All the pairwise interactions observed will be in the output. Focuses on canopy-recruit interactions considering that every recruit growing under the canopy of another plant may occupy that space in the future, thus having a potentially positive effect on the recruit species population. Therefore, even a single observation is considered an interaction. This type of networks considers every species present in the study system, whether as a canopy or as a recruit, as a node in the network. It also includes "Open" as a particular node since some species may recruit away from established plants. Non-detected interactions are also considered since zero frequency can provide evidence of a very negative interaction if the expected frequency under the canopy species is large.

  • fac: Only those pairwise interactions that resulted in recruitment enhancement will be in the output. Focuses on interactions with a significantly higher recruitment density under canopy than in "Open" (i.e. facilitation). Non-detected interactions are not considered and "Open" is not included as a node, although its relative cover is considered as part of the sampling area.

  • comp: Only those pairwise interactions that resulted in a recruitment depression will be in the output. Focuses on interactions with a significantly lower recruitment density under canopy than "Open" (i.e. competition). Non-detected interactions are considered (i.e. expanding with 0 all possible interactions in the study system), as the absence of recruitment of a species under a given canopy can reflect a particularly strong depression of recruitment under that canopy species. "Open" is not included as a node, although its relative cover is considered as part of the sampling area.

Value

A table with the following information:

  • Num nodes: Number of nodes in the network (N). In the case of facilitation and competition the nodes are provided for each guild

  • Num. links: Number of links in the network (L).

  • Connectance: Proportion of links observed from all the possible links (C). In the case of general recruitment networks, we use the formula $C = L / (N^2 - N)$ since the node "Open" does not act as a recruit (i.e. Open is represented by a row of zeroes in the adjacency matrix). For facilitation and recruitment depressing networks, connectance is calculated as $C = L /(N_c N_r)$, where N_c and N_r are the number of canopy and recruit species, respectively.

int_type**: Indicates the type of plant-plant interaction that will be presented in the output (recruitment patterns, recruitment enhancement (i.e. facilitation) or recruitment depression (i.e. competition))

  • rec: Estimates the number of nodes, links and connectance of the network based on all plant-plant interactions that contribute to recruitment. "Open" is considered an additional canopy species category.

  • fac: Estimates the number of nodes, links and connectance of the network based on only those pairwise interactions that significantly enhance recruitment. Not every interaction detected in the field has to be present in the matrix. Non-detected interactions are not considered and "Open" is not included as a canopy species category.

  • comp: Estimates the number of nodes, links and connectance of the network based on only those pairwise interactions that depress recruitment. Not every interaction detected in the field has to be present in the matrix. However, in this case non-detected interactions are considered. "Open" is not included as a canopy species category.

Examples

RN_dims(Amoladeras_int, Amoladeras_cover, int_type="rec")
RN_dims(Amoladeras_int, Amoladeras_cover, int_type="fac")
RN_dims(Amoladeras_int, Amoladeras_cover, int_type="comp")

Visualize a heatmap of the interactions matrix.

Description

Visualize a heatmap of the interactions matrix.

Usage

RN_heatmap(
  int_data,
  cover_data,
  int_type = c("rec", "fac", "comp"),
  weight = c("Pcr", "Fcr", "Dcr", "Dro", "Ns", "NintC", "NintA", "RII")
)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

int_type

#' Indicates the type of plant-plant interaction that will be presented in the output matrix: general recruitment, recruitment enhancement (i.e. facilitation) or recruitment depression (i.e. competition). It may take three possible values:

  • rec: Estimates the node degree based on all plant-plant interaction that contribute to recruitment.

  • fac: Estimates the node degree based on only those pairwise interactions that enhance recruitment. Not every observed interaction in the field has to be present in the matrix. In this case non-detected interactions are not considered and "Open" is not included as a canopy species category.

  • comp: Estimates the node degree based on only those pairwise interactions that depress recruitment. Not every observed interaction in the field has to be present in the matrix. However, in this case non-detected interactions are considered (i.e. expanding with 0 all possible interactions in the study system). "Open" is not included as a canopy species category.

weight

Specifies the metric used to represent interaction strength (i.e., the weight) assigned to each pair of species in the matrix. See function associndex for further details. The possible options are:

  • Fcr: frequency of recruitment in number of recruits by canopy-recruit pair.

  • Dcr: density of recruitment as number of recruits per unit area of canopy species.

  • Ns: The index Normalized Neighbour Suitability index (proposed by Mingo, 2014), suitable for comparisons of interaction strength between pairs of species within a local community, which should be preferred in general recruitment networks (Alcantara et al. 2025).

  • NIntA: The index additive symmetry intensity index proposed by Diaz-Sierra et al. (2017).

  • NIntC: The index commutative symmetry intensity index proposed by Diaz-Sierra et al. (2017).

  • RII: The index Relative Interaction Index (Armas et al., 2004).

Value

Heatmap plot of the weighted network.

Examples

RN_heatmap(Amoladeras_int, Amoladeras_cover, int_type="fac", weight ="Ns")

Convert field data to matrix format

Description

converts the community data collected in the field, where each row represents a single canopy-recruit interaction, into a matrix format, with recruit species as rows and canopy species as columns. For general recruitment networks, the matrix should be square including all species observed at the study site. This means that the same set of species appears in both rows and columns, with "Open" areas treated as an additional category in both the Canopy and Recruit variables. In contrast, for recruitment enhancement (i.e. facilitation) or depression (i.e. competition), the matrix can be non-square. In this case, rows represent the species whose recruitment is enhanced or suppressed, while columns represent the canopy species that influence this recruitment. These two groups may not include the same species.

Usage

RN_to_matrix(
  int_data,
  cover_data,
  int_type = c("rec", "fac", "comp"),
  weight = c("Fcr", "Dcr", "Dro", "Ns", "NintC", "NintA", "RII")
)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

int_type

Indicates the type of plant-plant interaction that will be analyzed: general recruitment, recruitment enhancement (i.e. facilitation) or recruitment depression (i.e. competition). Explanation of its options:

  • rec: All the pairwise interactions observed will be in the output. Focuses on canopy-recruit interactions considering that every recruit growing under the canopy of another plant may occupy that space in the future, thus having a potentially positive effect on the recruit species population. Therefore, even a single observation is considered an interaction. This type of networks considers every species present in the study system, whether as a canopy or as a recruit, as a node in the network. It also includes "Open" as a particular node since some species may recruit away from established plants. Non-detected interactions are also considered since zero frequency can provide evidence of a very negative interaction if the expected frequency under the canopy species is large.

  • fac: Only those pairwise interactions that resulted in recruitment enhancement will be in the output. Focuses on interactions with a significantly higher recruitment density under canopy than in "Open" (i.e. facilitation). Non-detected interactions are not considered and "Open" is not included as a node, although its relative cover is considered as part of the sampling area.

  • comp: Only those pairwise interactions that resulted in a recruitment depression will be in the output. Focuses on interactions with a significantly lower recruitment density under canopy than "Open" (i.e. competition). Non-detected interactions are considered (i.e. expanding with 0 all possible interactions in the study system), as the absence of recruitment of a species under a given canopy can reflect a particularly strong depression of recruitment under that canopy species. "Open" is not included as a node, although its relative cover is considered as part of the sampling area.

weight

Specifies the metric used to represent interaction strength (i.e., the weight) assigned to each pair of species in the matrix. Explanation of its options (more mathematical information in the description of the function associndex() :

  • Fcr: frequency of recruitment, in number of recruits by canopy-recruit pair.

  • Dcr: density of recruitment, as number of recruits per unit area of canopy species cover.

  • Dro: density of recruitment in open interspaces, as number of recruits per unit area of open interspaces.

  • Ns: The Normalized Neighbour Suitability index; suitable for comparisons of interaction strength between pairs of species within a local community.

  • NIntA: The Additive symmetry intensity index.

  • NIntC: The Commutative symmetry intensity index.

  • RII: The Relative Interaction Index.

Value

A matrix with recruit species in rows and canopy species in columns, with cells describing the measure selected to describe the interaction strength (i.e. weight) between each pair of species.

Examples

RN_to_matrix(Amoladeras_int, Amoladeras_cover, int_type="rec", weight="Dcr")

Test data

Description

Test data

Usage

test_data

Format

An object of class list of length 2.


Summary and node-based information of species in loops and simple paths

Description

provides summary and node-based information of number of species involved in intransitive loops of recruitment depression or simple indirect recruitment depression linear paths from (or to) any given species.

Usage

topol_depre(int_data, cover_data, direction = c("in", "out"))

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

direction

direction of teh links, in or out

Value

A list with two elements, one with the information of intransitive loops of recruitment depression and another with information of the simple indirect recruitment depression linear paths beginning of ending in each species.

The first element of the list loops provides the following information within two levels:

  • summary: A data frame with as many rows as SCC are present in the recruitment depression network (with more than one species, as autodepression is not considered) and in columns, an scc identifier scc_id and the number of species involved in that SCC n_nodos

  • nodes: a list with as many elements as SCCs found, each of them including a vector with the name of the species involved in that SCC The second element of the list simple, provides the following information within two levels:

  • summary: A data frame with as many rows as distinct simple linear indirect recruitment depression paths (i.e. their overlap in species composition is less than 75%) that begin ("from") or end ("to") in any species, including the linear versions of the SCCs. In columns, the species in which that distinct linear path begin or end nodo, and numeric index that identifies the paths within species path_index and the number of species involved in that path n_nodes_in_path which includes the focal species, independently of whether there is autodepression.

  • nodes: a list with as many elements as species in the recruitment depression network (either as depresor or depressed), each of them including as many elements as distinct paths begin or ends in it, and in each of them, a vector with the name of the species involved in that simple indirect recruitment depression linear paths. All arguments (options)**:

  • direction = c("in","out") Argument 1.

  • direction: Indicates the direction in which the indirect recruitment depression is assessed. Explanation of its options:

  • in: Estimates the paths based on the incoming links to each node, representing the set of canopy species that affect the recruitment of a given species through depressive effects, either directly (by depressing its recruitment) or indirectly (by depressing the recruitment of other canopy species connected to it through recruitment depression interactions). Link direction is considered for both reciprocal and simple paths.

  • out: Estimates the paths based on the outgoing links from each nodes, representing the set of species that canopy species affect through depressive effects, either directly or indirectly (i.e. through other intermediate species). The direction of the links is applied to both reciprocal and simple paths

Examples

topol_depre(test_data$com,test_data$cov, direction="out")

topol_depre(test_data$com,test_data$cov, direction="in")

summary and node-based information of species in loops and simple paths

Description

provides summary and node-based information of number of species involved in loops of reciprocal facilitation or simple indirect facilitation linear paths from (or to) any given species.

Usage

topol_fac(int_data, cover_data, direction = c("in", "out"))

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

direction

the direction of the link

Value

A list with two elements, one with the information of reciprocal facilitation loops and another with information of the simple linear indirect facilitation paths beginning of ending in each species.

The first element of the list loops provides the following information within two levels:

  • summary: A data frame with as many rows as SCC are present in the facilitation network (with more than one species, as autofacilitation is not considered) and in columns, an scc identifier scc_id and the number of species involved in that SCC n_nodos

  • nodes: a list with as many elements as SCCs found, each of them including a vector with the name of the species involved in that SCC The second element of the list simple, provides the following information within two levels:

  • summary: A data frame with as many rows as distinct simple linear indirect facilitation paths (i.e. their overlap in species composition is less than 75%) that begin ("from") or end ("to") in any species, including the linear versions of the SCCs. In columns, the species in which that distinct linear path begin or end nodo, and numeric index that identifies the paths within species path_index and the number of species involved in that path n_nodes_in_path which includes the focal species, independently of whether there is autofacilitation.

  • nodes: a list with as many elements as species in the facilitation network (either as nurse or facilitated), each of them including as many elements as distinct paths begin or ends in it, and in each of them, a vector with the name of the species involved in that simple indirect facilitation linear path. All arguments (options):

  • direction = c("in","out") Argument 1.

  • direction: Indicates the direction in which the indirect facilitation is assessed. Explanation of its options:

  • in: Estimates the paths based on the incoming links to each node, representing the set of nurse species from which a recruit species benefits, either directly (by enhancing its recruitment) or indirectly (by facilitating other nurse species that enhance its recruitment). Link direction is considered for both reciprocal and simple paths.

  • out: Estimates the paths based on the outgoing links from each nodes, representing the set of species that a nurse species benefits, either directly or indirectly (i.e. through other intermediate species). The direction of the links is applied to both reciprocal and simple paths

Examples

topol_fac(test_data$com,test_data$cov, direction="out")

topol_fac(test_data$com,test_data$cov, direction="in")

visualize the functional topology of general recruitment networks

Description

visualize the functional topology of general recruitment networks

Usage

visu_funtopol_rec(int_data, cover_data)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

Value

a plot with teh different species role

Examples

visu_funtopol_rec(Amoladeras_int,Amoladeras_cover)

Graph of nodes and interactions

Description

Plant-plant interaction network visualization as a graph. On one hand, it is the visualization of the nodes and interactions, which can be visualized in two formats, either as a graph conducted with this function or as an adjacency matrix, with the function RN_heatmap. And on the other hand, three functions, one for each interaction type network, to visualize the functional topology of general recruitment networks visu_funtopol_rec and the structural topology of the recruitment enhancement visu_topol_fac and depression visu_topol_depre networks respectively.

Usage

visu_net(
  int_data,
  cover_data,
  int_type = c("rec", "fac", "comp"),
  weight = c("Pcr", "Fcr", "Dcr", "Dro", "Ns", "NintC", "NintA", "RII"),
  mode = c("uni", "bi"),
  scale_w = 1
)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

int_type

Indicates the type of plant-plant interaction that will be analyzed: general recruitment, recruitment enhancement (i.e. facilitation) or recruitment depression (i.e. competition). See detailed options in int_significance().

weight

specifies the metric used to represent interaction strength (i.e., the weight) assigned to each pair of species in the matrix. Explanation of its options (more mathematical information in the description of the function associndex):

  • Fcr: frequency of recruitment in number of recruits by canopy-recruit pair.

  • Dcr: density of recruitment as number of recruits per unit area of canopy species.

  • Ns: The index Normalized Neighbour Suitability index (proposed by Mingo, 2014), suitable for comparisons of interaction strength between pairs of species within a local community, which should be preferred in general recruitment networks (Alcantara et al. 2025).

  • NIntA: The index additive symmetry intensity index proposed by Diaz-Sierra et al. (2017).

  • NIntC: The index commutative symmetry intensity index proposed by Diaz-Sierra et al. (2017). -RII: The index Relative Interaction Index (Armas et al., 2004).

mode

to be used only for recruitment enhancement("fac") and recruitment depression ("comp") networks. Indicates whether the network should be plotted as a unipartite or a bipartite network. In bipartite networks, canopy species are shown in the upper row and recruits in the lower row of the graph. For general recruitment networks, the network should be considered as unipartite, and it will result in an error if this argument is given the option "bi".

scale_w

is an argument to proportionally increase or decrease the thickness of the links. In some networks, high values can result in the overlapping of links that difficult the visualization.

Value

a graph representing a network of plant-plant interactions.

Examples

# Unipartite network representation of a general recruitment network. Link width
# corresponds to the scaled frequency of recruitment (*Fcr*):
visu_net(mysite_com, mysite_cov, int_type="rec", weight="Fcr", mode="uni", scale_w=0.01)

# Unipartite representation of a facilitation network. Link width corresponds to the
# scaled *Ns* index:
visu_net(mysite_com, mysite_cov, int_type="fac", weight="Ns", mode="uni", scale_w=5)

# Bipartite representation of a facilitation network. Link width corresponds to the
# scaled *Ns* index. Canopy species are shown in the upper row and recruits in the lower
# row of the graph:
visu_net(mysite_com, mysite_cov, int_type="fac", weight="Ns", mode="bi", scale_w=5)

# Unipartite representation of a recruitment depression (*competition*) network. Link
# width corresponds to the scaled *RII* index:
visu_net(mysite_com, mysite_cov, int_type="comp", weight="RII", mode="uni", scale_w=5)

# Bipartite representation of a recruitment depression (*competition*) network. Link
# width corresponds to the scaled *RII* index. Canopy species are shown in the upper row
# and recruits in the lower row of the graph:
visu_net(mysite_com, mysite_cov, int_type="comp", weight="RII", mode="bi", scale_w=5)

Allow the visualization of intransitivity loops of recruitment depression

Description

with nodes in different SCC identified by different colors (in grey if they do not belong to any SCC). It may be frequent that in recruitment enhancement (i.e. facilitation) or depression (i.e.competition) networks, there is not any SCC as they tend to have smaller dimensions that general recruitment networks.

Usage

visu_topol_depre(
  int_data,
  cover_data,
  layout_fun = igraph::layout_with_fr,
  vertex_size = 20,
  edge_arrow_size = 0.4
)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

layout_fun

type of igraph layout (see igraph::layout_())

vertex_size

numeric

edge_arrow_size

numeric

Value

a plot

Examples

visu_topol_depre(test_data$com,test_data$cov)

Allow the visualization of reciprocal facilitation

Description

with nodes in different SCC identified by different colors (in grey if they do not belong to any SCC). It may be frequent that in recruitment enhancement (i.e. facilitation) or depression (i.e.competition) networks, there is not any SCC as they tend to have smaller dimensions that general recruitment networks.

Usage

visu_topol_fac(
  int_data,
  cover_data,
  layout_fun = igraph::layout_with_fr,
  vertex_size = 20,
  edge_arrow_size = 0.4
)

Arguments

int_data

data frame containing interaction data.

cover_data

data frame with the abundance of each canopy species in each plot.

layout_fun

type of igraph layout (see igraph::layout_())

vertex_size

numeric

edge_arrow_size

numeric

Value

a plot

Examples

visu_topol_fac(test_data$com,test_data$cov)