fuse {analogue}R Documentation

Fused dissimilarities


Combines dissimilarities from two or more dissimilarity objects into a single dissimilarity object so that both original dissimilarities contribute equally. Weighted combinations of the original objects can also be created.


fuse(..., weights = NULL)

## S3 method for class 'matrix'
fuse(..., weights = NULL)

## S3 method for class 'dist'
fuse(..., weights = NULL)



objects to fuse. Methods currently exist for objects of class "matrix" and "dist" objects. Method dispatch is performed on the first object specified in .... A minimum of two objects must be supplied.


numeric; vector of weights that sum to 1, one weight for each object supplied in ....


Fuses, or combines, dissimilarity objects in a very flexible way to create a single dissimilarity object that incorporates the separate dissimilarities. In analogue matching, we may wish to combine information from two or more proxies, such as diatoms and cladocera, or from biological and chemical or physical data in the case of matching modern samples.

The function can also be used to fuse dissimilarity objects created from a single data set but using different dissimilarity coefficients. In this way one could create a new dissimilarity object combining dissimilarity based on abundance data and presence absence data into a single measure.

fuse uses the method of Melssen et al. (2006) to combine dissimilarities. The dissimilarities in each dissimilarity object are scaled so that the maximum dissimilarity in each object is 1. The scaled dissimilarity objects are then weighted according to the supplied weights. If no weights are supplied (the default) the dissimilarity objects are weighted equally; weights = rep(1/N, N), where N is the number of dissimilarity objects fused.

D[fused](j, k) = sum(w[i] * D[ijk])

where D[fused](j, k) is the fused dissimilarity between samples j and k, w[i] is the weight assigned to the ith dissimilarity object and D[ijk] is the dissimilarity between j and k for the ith dissimilarity object.


fuse returns an object of class "dist" with the attribute "method" set to "fuse".

This is the case even if the supplied objects are full dissimilarity matrices. If you want a full dissimilarity object, use as.matrix.dist on the returned object.

The returned object contains an extra attribute "weights", which records the weights used in the fusing.


Gavin L. Simpson


Melssen W., Wehrens R. and Buydens L. (2006) Supervised Kohonen networks for classification problems. Chemometrics and intelligent laboratory systems 83, 99–113.

See Also

dist, vegdist, distance.


train1 <- data.frame(matrix(abs(runif(100)), ncol = 10))
train2 <- data.frame(matrix(sample(c(0,1), 100, replace = TRUE),
                     ncol = 10))
rownames(train1) <- rownames(train2) <- LETTERS[1:10]
colnames(train1) <- colnames(train2) <- as.character(1:10)

d1 <- vegdist(train1, method = "bray")
d2 <- vegdist(train2, method = "jaccard")

dd <- fuse(d1, d2, weights = c(0.6, 0.4))

[Package analogue version 0.17-6 Index]