ordiselect: Species selection for ordination plots

View source: R/ordiselect.r

ordiselectR Documentation

Species selection for ordination plots

Description

This function simplifies the selection of relevant species in ordination diagrams. It works with result objects from the vegan package. The selection can be based upon cover abundances, frequency values and/or species fit to multivariate analysis (see Details). The result is a vector of names of the selected species and can be used for the select argument in ordination plots.

Usage

ordiselect(
  matrix,
  ord,
  ablim = 1,
  fitlim = 1,
  choices = c(1, 2),
  freq = FALSE,
  na.rm = FALSE,
  method = "axes",
  env,
  p.max = 0.05
)

Arguments

matrix

Community data, a matrix-like object with samples in rows and species in columns.

ord

vegan ordination result object (e.g. from decorana, cca or metaMDS).

ablim

Proportion of species with highest abundances to be displayed. Value between 0 and 1. Use negative sign for selection of lowest abundances, i.e. rarest species.

fitlim

Proportion of species with best fit to be displayed. Value between 0 and 1.

choices

Axes shown.

freq

Whether to use cover abundances (= default) or frequencies of matrix. If TRUE, frequencies of species are used.

na.rm

Set to TRUE if your ordination object contains NA (e.g. due to selection)

method

The species fit method: "axes" (= default) or "factors". See details for methods.

env

Fitted environmental variables (result object of envfit) for method = "factors". Only factor variables are used.

p.max

Significance limit for variables used in method = "factors".

Value

A vector of variable length containing the names of selected species from matrix.

Details

Two methods for species fit are implemented.

  • In method = "axes" (default) species scores are used for selecting best fitting species. The basic assumption is that species that show high correlations to ordination axes provide a good fit to the assumed gradients, Hence high scores along ordination axes mean high correlation. All species with highest axis scores, defined by the threshold given in argument fitlim, will be filtered from the total ordination result.

  • In method = "factors", Euclidean distances between species and environmental variable centroids are calculated. Only factor variables are used from envfit output. The species with smallest distances, defined by fitlim argument as a threshold, will be filtered from the ordination result. The p.max argument allows selection of only significant variables, default is p.max = 0.05.

The species fit methods work well both in eigenvalue-based and in distance-based ordinations and provide good option of objective reduction of visible species in ordination plot for better interpretation issues. If axes fit should be applied on distance-based ordination, species scores need to be calculated during the analysis, e.g. by selecting wascores = TRUE in metaMDS. It is mostly recommendable to combine the species fit limit with an abundance limit so avoid overinterpretation of rare species.

For the abundance limit, note that the final proportion of the selected species may be higher than the indicated proportion if there are identical values in the abundances. For selection of least abundant (rarest) species you can use a negative sign, e.g. ablim = -0.3 for the 30 percent least abundant species.

If both limits are defined only species meeting both conditions are selected. If no limit is defined for one of the arguments ablim, fitlim, all species are displayed.

The default for matrix input is a cover-abundance-matrix. This matrix should also be used for ordination.

Author(s)

Friedemann von Lampe (fvonlampe@uni-goettingen.de) and Jenny Schellenberg

Examples

## Calculate DCA
library(vegan)
scheden.dca <- decorana(schedenveg)

## Select the 30% most abundant species and call the result
limited <- ordiselect(schedenveg, scheden.dca, ablim = 0.3)
limited

# Use the result in plotting
plot(scheden.dca, display="n")
points(scheden.dca, display="sites")
points(scheden.dca, display="species",
   select = limited, pch = 3, col = "red", cex = 0.7)
ordipointlabel(scheden.dca, display="species",
    select = limited, col="red", cex = 0.7, add = TRUE)


## Select the 70% of the species with the best fit to the axes (highest species scores)
## AND belonging to the 30% most frequent species
limited <- ordiselect(schedenveg, scheden.dca, ablim = 0.3,
   fitlim = 0.7, freq = TRUE)

## Select the 30% least frequent species and call the result
limited <- ordiselect(schedenveg, scheden.dca, ablim = -0.3, freq = TRUE)
limited

## Select the 20% of species with the best fit to community assignment
## AND belonging to the 50% most abundant
## in NDMS for axes 1 & 3
nmds <- metaMDS(schedenveg, k = 3)   # run NMDS
env13 <- envfit(nmds, schedenenv, choices = c(1, 3))
limited13 <- ordiselect(schedenveg, nmds, method = "factors",
                       fitlim = 0.1, ablim = 1,
                       choices = c(1,3), env = env13)

# Use the result in plotting
plot(nmds, display="sites", choices = c(1, 3))
plot(env13, p.max = 0.05)
points(nmds, display="species", choices = c(1,3),
    select = limited13, pch = 3, col="red", cex=0.7)
ordipointlabel(nmds, display="species", choices = c(1,3),
    select = limited13, col="red", cex=0.7, add = TRUE)


goeveg documentation built on July 9, 2023, 7:35 p.m.