R: Sorting and reordering dendrogram nodes

dendsort {dendsort} | R Documentation

## Sorting and reordering dendrogram nodes

### Description

`dendsort` sorts a dendrogram object which is typically a result of hierarchical clustering (hclust). The subtrees in the resulting dendrogram are sorted based on the average distance of subtrees at every merging point. The tighter cluster, in other words the cluster with smaller average distance, is placed on the left side of branch. When a leaf merge with a cluster, the leaf is placed on the right side.

### Usage

    dendsort(d, isReverse = FALSE, type = "min")

### Arguments

`d` | a dendrogram or hclust object.`d`
`isReverse` | logical indicating if the order should be reversed.Defaults to FALSE`isReverse`
`type` | character indicating the type of sorting. Default to "min" `type`

### Value

output A sorted dendrogram or hclust.

### Examples

    #generate sample data
    set.seed(1234); par(mar=c(0,0,0,0))
    x <- rnorm(10, mean=rep(1:5, each=2), sd=0.4)
    y <- rnorm(10, mean=rep(c(1,2), each=5), sd=0.4)
    dataFrame <- data.frame(x=x, y=y, row.names=c(1:10))
    #calculate Euclidian distance
    distxy <- dist(dataFrame)
    #hierachical clustering "complete" linkage by default
    hc <- hclust(distxy)

    #sort dendrogram
    dd <- dendsort(as.dendrogram(hc))
    hc_sorted  <- as.hclust(dd)

    #sort in reverse, you can also pass hclust object
    plot(dendsort(hc, isReverse=TRUE))

    #sort by average distance
    plot(dendsort(hc, type="average"))

    #plot the result
    par(mfrow = c(1, 3), mai=c(0.8,0.8,2,0.8))
    plot(x, y, col="gray", pch=19, cex=2)
    text(x, y, labels=as.character(1:10), cex=0.9)
    plot(hc,main="before sorting", xlab="", sub="")
    plot(hc_sorted, main="after sorting", xlab="", sub="")

[Package dendsort version 0.3.3 Index]