[R] how can I reorder a dendrogram?

Philippe Grosjean phgrosjean at sciviews.org
Thu Mar 20 12:59:49 CET 2008


Hello,

Perhaps, you should chose another toy example closer to the reality. 
Cases with exactly same distance rarely occur "in the field". You 
should, at least, add some random error:

datamatrix <- matrix(c(2,2,2.5,2,1.5,2,2,1.5,2,2.5,
6,2,6.5,2,5.5,2,6,1.5,6,2.5, 4,4,4.5,4,3.5,4,4,3.5,4,4.5) +
rnorm(30, sd = 0.1), ncol = 2, byrow = TRUE)
distmatrix <- dist(datamatrix, method = "manhattan")
hc <- hclust(distmatrix, method = "single")
dendro <- as.dendrogram(hc)
plot(dendro)

#Now, I want to impose an order:

weights <- c(2.0, 2.0, 2.0, 2.0, 2.0, 6.0, 6.0, 6.0, 6.0, 6.0, 4.0, 4.0,
4.0, 4.0, 4.0)
ddd <- reorder(dendro, weights, agglo.FUN=mean)
plot(ddd)

unlist(ddd)
# [1]  4  2  3  1  5 13 14 15 11 12 10  7  9  6  8


unlist(dendro)
# [1] 10  7  9  6  8 13 14 15 11 12  4  2  3  1  5

Best,

Philippe Grosjean
..............................................<°}))><........
  ) ) ) ) )
( ( ( ( (    Prof. Philippe Grosjean
  ) ) ) ) )
( ( ( ( (    Numerical Ecology of Aquatic Systems
  ) ) ) ) )   Mons-Hainaut University, Belgium
( ( ( ( (
..............................................................

Thomas Walter wrote:
> Hi!
> 
> I am trying to reorder a dendrogram via reorder.dendrogram. However, I 
> observed some problems with this, and I will illustrate them with an 
> example.
> 
> Take the following clustering problem:
> 
> datamatrix <- matrix(c(2,2,2.5,2,1.5,2,2,1.5,2,2.5, 
> 6,2,6.5,2,5.5,2,6,1.5,6,2.5, 4,4,4.5,4,3.5,4,4,3.5,4,4.5), ncol=2, 
> byrow=TRUE)
> distmatrix <- dist(datamatrix, method="manhattan")
> hc <- hclust(distmatrix, method="single")
> dendro <- as.dendrogram(hc)
> 
> The datamatrix contains three equidistant (for manhattan distance) 
> clusters, each of which contains 5 points.
> Now, I want to impose an order:
> 
> weights <- c(2.0, 2.0, 2.0, 2.0, 2.0, 6.0, 6.0, 6.0, 6.0, 6.0, 4.0, 4.0, 
> 4.0, 4.0, 4.0)
> ddd <- reorder(dendro, weights, agglo.FUN=mean)
> 
> but if you compare the order of ddd with dendro, you see no change:
> 
> unlist(ddd)
>  [1] 15 14 13 11 12  5  4  3  1  2 10  9  8  6  7
> 
> unlist(dendro)
>  [1] 15 14 13 11 12  5  4  3  1  2 10  9  8  6  7
> 
> I would have expected something like:
>  5  4  3  1  2 15 14 13 11 12 10  9  8  6  7
> 
> or something of the sort. (I still do not know, if the order should be 
> ascending or descending, but in the obtained result, it is neither nor). 
> I do not see, where my mistake is ...
> 
> Thanks for your advice!
> 
> Thomas.
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list