rda), but it allows
  non-Euclidean dissimilarity indices, such as Manhattan or
  Bray--Curtis distance. Despite this non-Euclidean feature, the analysis
  is strictly linear and metric. If called with Euclidean distance,
  the results are identical to rda, but capscale
  will be much more inefficient. Function capscale is a
  constrained version of metric scaling, a.k.a. principal coordinates
  analysis, which is based on the Euclidean distance but can be used,
  and is more useful, with other dissimilarity measures. The function
  can also perform unconstrained principal coordinates analysis,
  optionally using extended dissimilarities.capscale(formula, data, distance = "euclidean", sqrt.dist = FALSE,
    comm = NULL, add = FALSE,  dfun = vegdist, metaMDSdist = FALSE,
    na.action = na.fail, subset = NULL, ...)formula is a data frame instead of
    dissimilarity matrix.Notes below.formula was a
    dissimilarity matrix. This is not used if the LHS is a data
    frame. If this is not supplied, the ``species scores'' are the axes
 "dist" and taking the index name as the
     first argument can be used.metaMDSdist similarly as in
     metaMDS. This means automatic data transformation and
     using extended flexible shortest path dissimilarities (fuTRUE for kept observations, or a logical
     expression which can contain variables in the working
     environment, data or species names of the community data
   rda or to
     metaMDSdist.cmdscale and (2) analyses these results using
  rda. If the user supplied a community data frame instead
  of dissimilarities, the function will find the needed dissimilarity
  matrix using vegdist with specified
  distance. However, the method will accept dissimilarity
  matrices from vegdist, dist, or any
  other method producing similar matrices. The constraining variables can be
  continuous or factors or both, they can have interaction terms,
  or they can be transformed in the call. Moreover, there can be a
  special term
  Condition just like in rda and cca
  so that ``partial'' CAP can be performed.The current implementation differs from the method suggested by Anderson & Willis (2003) in three major points which actually make it similar to distance-based redundancy analysis (Legendre & Anderson 1999):
cmdscale, whereascapscaleuses axes
    weighted by corresponding eigenvalues, so that the ordination
    distances are the best approximations of original
    dissimilarities. In the original method, later ``noise'' axes are
    just as important as first major axes.capscaleuses all axes with positive eigenvalues. The use of
    subset is necessary with orthonormal axes to chop off some
    ``noise'', but the use of all axes guarantees that the results are
    the best approximation of original dissimilarities.capscaleadds species scores as weighted sums
    of (residual) community matrix (if the matrix is available), whereas
    Anderson & Willis have no fixed method for adding species scores.capscale with Euclidean
  distances will be identical to rda in eigenvalues and
  in site, species and biplot scores (except for possible sign
  reversal). 
  However, it makes no sense to use capscale with
  Euclidean distances, since direct use of rda is much more
  efficient. Even with non-Euclidean dissimilarities, the
  rest of the analysis will be metric and linear.  The function can be also used to perform ordinary metric scaling
  a.k.a. principal coordinates analysis by using a formula with only a
  constant on the left hand side, or comm ~ 1. With
  metaMDSdist = TRUE, the function can do automatic data
  standardization and use extended dissimilarities using function
  stepacross similarly as in non-metric multidimensional
  scaling with metaMDS.
Gower, J.C. (1985). Properties of Euclidean and non-Euclidean distance matrices. Linear Algebra and its Applications 67, 81--97.
Legendre, P. & Anderson, M. J. (1999). Distance-based redundancy analysis: testing multispecies responses in multifactorial ecological experiments. Ecological Monographs 69, 1--24.
Legendre, P. & Legendre, L. (1998). Numerical Ecology. 2nd English Edition. Elsevier
rda, cca, plot.cca,
  anova.cca, vegdist,
  dist, cmdscale.data(varespec)
data(varechem)
## Basic Analysis
vare.cap <- capscale(varespec ~ N + P + K + Condition(Al), varechem,
                     dist="bray")
vare.cap
plot(vare.cap)
anova(vare.cap)
## Avoid negative eigenvalues with additive constant
capscale(varespec ~ N + P + K + Condition(Al), varechem,
                     dist="bray", add =TRUE)
## Avoid negative eigenvalues by taking square roots of dissimilarities
capscale(varespec ~ N + P + K + Condition(Al), varechem,
                     dist = "bray", sqrt.dist= TRUE)
## Principal coordinates analysis with extended dissimilarities
capscale(varespec ~ 1, dist="bray", metaMDS = TRUE)Run the code above in your browser using DataLab