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 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.
high
(default) or low
or both
, depending if you want to exterminate higher trophic level species, lower trophic level species, or randomly choose species of both levels.
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.
Number of replicates of extermination sequence. Will not be considered for method abundance.
Logical; returns details, i.e. for each replicate the sequence of secondary extinctions. If set to FALSE
(default), replicated runs will be averaged. Using anything but FALSE
will not yield the correct object for further analysis. This switch is really only for understanding what second.extinct
does and for possible debugging.
Optional vector giving the sequence in which lower-level species are to be deleted.
Optional vector giving the sequence in which higher-level species are to be deleted.
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).
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
.
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))
# }
Run the code above in your browser using DataLab