dfun(web, abundances=NULL)
sum(web)
. Then it rounds off to integers and allocates the remaining interactions in two steps: First, all columns and rows with marginal sums of 0 obtain one interaction into the cell with the highest expected value. Secondly, all remaining interactions are distributed according to difference between present and expected value: those cells with highest discrepancy receive an interaction until the sum of all entries in the new web equals those in the original web. Now the d-values for this web are calculated and used as dmin.
Simple rounding of expected values would lead to empty columns or rows, i.e. the dmin-web would be of lower dimension than the original web.
dfun returns the d' values for the lower trophic level. Use fun(t(web))
to get the d'-values for the higher trophic level (as does 'specieslevel').
d' is one of several species-level network indices. It's generalisation to the entire interaction web is called H2'.
The abundances
vector allows to incorporate independent estimates of the abundances of the HIGHER trophic level. In a pollination web, pollinator abundances may be very different from those estimated by the interaction matrix column sums. This has also, obviously, large consequences for the specialisation: A plant being pollinated by a bee that is common on this plant, but very rare in general, will show a low specialisation unless bee abundances are corrected for. Data given in the abundance vector are here used in replacement for the row sums, both in the d-function itself, as well as in the calculation of the minimum ds.H2fun
for a similar function for the entire network. specieslevel
for a method that, amongst other indices, calls dfun
.data(Safariland)
dfun(Safariland) # gives d-values for the lower trophic level
# now using independent abundance estimates for higher trophic level:
dfun(Safariland, abundances=runif(ncol(Safariland)))
dfun(t(Safariland)) #gives d-values for the higher trophic level
Run the code above in your browser using DataLab