`sort_smallest`

sorts a dendrogram object based on
the smallest distance in its subtrees, recursively.
The cluster with the smallest distance is placed on the left
side of branch.When a leaf merge with a cluster, the leaf is
placed on the right side.

1 |

`d` |
A dendrogram object. |

output A sorted dendrogram object.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | ```
#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="")
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.