Secondary extinctions in bipartite networks
Calculates the consequences of removing a species from a bipartite network. With plotting and slope-estimation functionality.
second.extinct(web, participant = "higher", method = "abun", nrep = 10, details = FALSE, ext.row=NULL, ext.col=NULL)
web |
Web is a matrix representing the interactions observed between higher trophic level species (columns) and lower trophic level species (rows). Usually this will be number of pollinators on each species of plants or number of parasitoids on each species of prey. |
participant |
|
method |
Random deletion of a species (random); according to its abundance, with least abundant going extinct first (abundance; default) or "degree" to build a sequence from the best-to-least connected species. This is the most extreme case, where the most generalist species goes extinct first (see Memmott et al. 1998). (Note that method="abundance" does not work with participant="both"; in this case a random sequence of species from both trophic levels is generated.) external will use the externally provided vector to determine extinction sequence. |
nrep |
Number of replicates of extermination sequence. Will not be considered for method abundance. |
details |
Logical; returns details, i.e. for each replicate the sequence of secondary extinctions. If set to |
ext.row |
Optional vector giving the sequence in which lower-level species are to be deleted. |
ext.col |
Optional vector giving the sequence in which higher-level species are to be deleted. |
The procedure of this function is simple. For example imagine the web to represent a pollination web, in which pollinators die one by one. Set all entries of a column to zero, see how may rows are now also all-zero (i.e. species that are now not pollinated any more), and count these as secondary extinctions of the primary exterminated pollinator.
Internally, each extermination is achieved by a call to extinction
, followed by a call to empty
, which counts the number of all-zero columns and rows.
Although written for pollination webs (hence the nomenclature of pollinator and plant), it can be similarly applied to other types of bipartite networks. It is called by networklevel
.
Function returns an object of class “bipartite” to ensure proper working of function plot.bipartite
.
If details=FALSE, the returned object contains a matrix with columns representing the number of species going extinct from one step to the next, averaged across all runs.
If details=FALSE, the returned object will be a list of matrices containing the number of species going extinct at each step.
The objects attribute “exterminated” gives the name of the trophic level (pollinator or plant).
Note: The length of an extinction sequence is obviously given by the number of species in the selected trophic level. When setting participant="both", lengths will differ for each replicate run, since it is unpredictable in which sequence species go extinct, and hence how many secondary extinctions will pre-empt further primary extinctions.
Note 2: Because external abundances can be fed to this function, the web is not emptied of all-empty rows or columns. Thus the results will be different to calls to networklevel
or grouplevel
, which by default empty the web!
Carsten F. Dormann
Memmott, J., Waser, N. M. and Price, M. V. (2004) Tolerance of pollination networks to species extinctions. Proceedings of the Royal Society B 271, 2605–2611.
networklevel
calls second.extinct
; extinction
and empty
are internal helper functions, and slope.bipartite
calculates extinction slopes from the output of second.extinct
.
## Not run: data(Safariland) (ex <- second.extinct(Safariland, participant="lower", method="random", nrep=50, details=TRUE)) (ex <- second.extinct(Safariland, participant="lower", method="random", nrep=50, details=FALSE)) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.