Deprecated Functions in vegan package


These functions are provided for compatibility with older versions of vegan only, and may be defunct as soon as the next release.


commsimulator(x, method, thin=1)
## S3 method for class 'adonis'
density(x, ...)
## S3 method for class 'vegandensity'
plot(x, main = NULL, xlab = NULL, ylab = "Density", 
   type = "l", zero.line = TRUE, obs.line = TRUE, ...)
## S3 method for class 'adonis'
densityplot(x, data, xlab = "Null", ...)



Community data for commsimulator,or an object to be handled by density or densityplot

## commsimulator


Null model method: either a name (character string) of a method defined in make.commsim or a commsim function.


Number of discarded null communities between two evaluations of nestedness statistic in sequential methods "swap" and "tswap" (ignored with non-sequential methods)

## density and densityplot

main, xlab, ylab, type, zero.line

Arguments of plot.density, densityplot.


Draw vertical line for the observed statistic. Logical value TRUE draws a red line, and FALSE draws nothing. Alternatively, obs.line can be a definition of the colour used for the line, either as a numerical value from the palette or as the name of the colour, or other normal definition of the colour.




Other arguments passed to functions.


Function commsimulator is replaced with make.commsim which defines the Null models, and functions nullmodel and simulate.nullmodel that check the input data and generate the Null model communities. Function commsimulator was used to generate a single Null model for presence/absence (binary) data. Below is a copy of its original documentation in oecosimu, where it is now replaced with make.commsim, nullmodel and simulate.nullmodel. Approximately the same documentation for these models is found in make.commsim. (However, the random number sequences for model r0 differ, and you must use method = "r0_old" in make.commsim to reproduce the commsimulator results.)

Function commsimulator implements binary (presence/absence) null models for community composition. The implemented models are r00 which maintains the number of presences but fills these anywhere so that neither species (column) nor site (row) totals are preserved. Methods r0, r1 and r2 maintain the site (row) frequencies. Method r0 fills presences anywhere on the row with no respect to species (column) frequencies, r1 uses column marginal frequencies as probabilities, and r2 uses squared column sums. Methods r1 and r2 try to simulate original species frequencies, but they are not strictly constrained. All these methods are reviewed by Wright et al. (1998). Method c0 maintains species frequencies, but does not honour site (row) frequencies (Jonsson 2001).

The other methods maintain both row and column frequencies. Methods swap and tswap implement sequential methods, where the matrix is changed only little in one step, but the changed matrix is used as an input if the next step. Methods swap and tswap inspect random 2x2 submatrices and if they are checkerboard units, the order of columns is swapped. This changes the matrix structure, but does not influence marginal sums (Gotelli & Entsminger 2003). Method swap inspects submatrices so long that a swap can be done. Miklós & Podani (2004) suggest that this may lead into biased sequences, since some columns or rows may be more easily swapped, and they suggest trying a fixed number of times and doing zero to many swaps at one step. This method is implemented by method tswap or trial swap. Function commsimulator makes only one trial swap in time (which probably does nothing), but oecosimu estimates how many submatrices are expected before finding a swappable checkerboard, and uses that ratio to thin the results, so that on average one swap will be found per step of tswap. However, the checkerboard frequency probably changes during swaps, but this is not taken into account in estimating the thin. One swap still changes the matrix only little, and it may be useful to thin the results so that the statistic is only evaluated after burnin steps (and thinned).

Methods quasiswap and backtracking are not sequential, but each call produces a matrix that is independent of previous matrices, and has the same marginal totals as the original data. The recommended method is quasiswap which is much faster because it is implemented in C. Method backtracking is provided for comparison, but it is so slow that it may be dropped from future releases of vegan (or also implemented in C). Method quasiswap (Miklós & Podani 2004) implements a method where matrix is first filled honouring row and column totals, but with integers that may be larger than one. Then the method inspects random 2x2 matrices and performs a quasiswap on them. Quasiswap is similar to ordinary swap, but it also can reduce numbers above one to ones maintaining marginal totals. Method backtracking implements a filling method with constraints both for row and column frequencies (Gotelli & Entsminger 2001). The matrix is first filled randomly using row and column frequencies as probabilities. Typically row and column sums are reached before all incidences are filled in. After that begins “backtracking”, where some of the points are removed, and then filling is started again, and this backtracking is done so may times that all incidences will be filled into matrix. The quasiswap method is not sequential, but it produces a random incidence matrix with given marginal totals.

The density function can directly access permutation results of the same function as permustats. The density function is identical to density.default and takes all its arguments, but adds the observed statistic to the result as item "observed". The observed statistic is also put among the permuted values so that the results are consistent with significance tests. The plot method is similar to the default plot.density, but can also add the observed statistic to the graph as a vertical line. In adonis it is also possible to use direclty densityplot function.

The deprecated density and densityplot methods are replaced with similar methods for permustats. The permustats offers more powerful analysis tools for permutations, including summary.permustats giving z values (a.k.a. standardized effect sizes, SES), and Q-Q plots (qqnorm.permustats, qqmath.permustats. Below the old documentation:

The density methods are available for vegan functions adonis, anosim, mantel, mantel.partial, mrpp, permutest.cca, and protest. The density function for oecosimu is documented separately, and it is also used for adipart, hiersimu and multipart.

All vegan density functions return an object of class "vegandensity" inheriting from density, and can be plotted with its plot method. This is identical to the standard plot of densiy objects, but can also add a vertical line for the observed statistic.

Functions that can return several permuted statistics simultaneously also have densityplot method (adonis, oecosimu and diversity partitioning functions based on oecosimu). The standard density can only handle univariate data, and a warning is issued if the function is used for a model with several observed statistics


Gotelli, N.J. & Entsminger, N.J. (2001). Swap and fill algorithms in null model analysis: rethinking the knight's tour. Oecologia 129, 281–291.

Gotelli, N.J. & Entsminger, N.J. (2003). Swap algorithms in null model analysis. Ecology 84, 532–535.

Jonsson, B.G. (2001) A null model for randomization tests of nestedness in species assemblages. Oecologia 127, 309–313.

Miklós, I. & Podani, J. (2004). Randomization of presence-absence matrices: comments and new algorithms. Ecology 85, 86–92.

Wright, D.H., Patterson, B.D., Mikkelson, G.M., Cutler, A. & Atmar, W. (1998). A comparative analysis of nested subset patterns of species composition. Oecologia 113, 1–20.

See Also


Want to suggest features or report bugs for Use the GitHub issue tracker. Vote for new features on Trello.

comments powered by Disqus