This function provides a set of alternative dissimilarity indices and distance metrics for classification and ordination, including weighting by species (columns) and shortest-path adjustment for dissimilarity indices.
dsvdis(x,index,weight=rep(1,ncol(x)),step=0.0,
diag=FALSE, upper=FALSE)
a matrix of observations, samples as rows and variables as columns
a specific dissimilarity or distance index (see details below)
a vector of weights for species (columns)
a threshold dissimilarity to initiate shortest-path adjustment (0.0 is a flag for no adjustment)
a switch to control returning diagonal (default=FALSE)
a switch to control returning upper (TRUE) or lower (FALSE) triangle
Returns an object of class "dist", equivalent to that from dist
.
The function calculates dissimilarity or distance between rows of a matrix of observations according to a specific index. Three indices convert the data to presence/absence automatically. In contingency table notation, they are:
steinhaus | \(1 - a / (a + b + c)\) |
sorensen | \(1 - 2a / (2a + b +c)\) |
ochiai | \(1 - a / \sqrt{(a+b) \times (a+c)}\) |
Others are quantitative. For variable i in samples x and y:
ruzicka | \(1 - \sum min(x_i,y_i) / \sum max(x_i,y_i)\) |
bray/curtis | \(1 - \sum[2 * min(x_i,y_i)] / \sum x_i + y_i\) |
roberts | \(1 - [(x_i+y_i) * min(x_i,y_i) / max(x_i,y_i)] / (x_i + y_i)\) |
chisq | \((exp - obs) / \sqrt{exp}\) |
The weight argument allow the assignment of weights to individual species in the calculation of plot-to-plot similarity. The weights can be assigned by life-form, indicator value, or for other investigator specific reasons. For the presence/absence indices the weights should be integers; for the quantitative indices the weights should be in the interval [0,1]. The default (rep(1,ncol(x)) is to set all species = 1.
The threshold dissimilarity ‘step’ sets all values greater than "step" to 9999.9 and then solves for the shortest path distance connecting plots to other non-9999.9 values in the matrix. Step = 0.0 (the default) is a flag for "no shortest-path correction".
http://ecology.msu.montana.edu:/labdsv/R/labs/lab8/lab8.html
dist
, vegdist
# NOT RUN {
data(bryceveg) # returns a data.frame called "bryceveg"
dis.ochiai <- dsvdis(bryceveg,index="ochiai")
dis.bc <- dsvdis(bryceveg,index="bray/curtis")
# }
Run the code above in your browser using DataLab