在R中绘制树,给出成对的叶子和高度,它们合并在一起

时间:2013-03-04 21:21:13

标签: r tree cluster-analysis dendrogram

我有一个树的叶子列表和我希望它们合并的高度,即它们最近的共同祖先的高度。假设所有叶子都在高度为0.玩具示例可能如下:

as.data.frame(rbind(c("a","b",1),c("c","d",2),c("a","d",4)))
   V1 V2 V3
1  a  b  1
2  c  d  2
3  a  d  4

我想绘制一个代表这些数据的树。我知道R可以绘制来自hclust的树。如何将我的数据转换为hclust返回的格式或其他易于绘制的格式?

已编辑添加图表

上述数据集的树如下所示:

   __|___
  |      |
  |     _|_
 _|_   |   |
|   |  |   |  
a   b  c   d   

1 个答案:

答案 0 :(得分:0)

您所拥有的是已经指定的层次聚类(以您自己的数据格式约定),并且您希望使用R的绘图工具。这似乎并不容易。我现在能够看到的唯一方法是创建一个对象,例如hclust返回的对象。它具有属性“合并”,“高度”,“顺序”,“标签”,“方法”,“调用”,“dist.method”,这些都很容易理解。有人已经尝试过这个:https://stat.ethz.ch/pipermail/r-help/2006-February/089170.html但显然仍有问题。你还可以尝试做的是用一个与你的聚类一致的虚拟值填充距离矩阵,然后将其提交给hclust。 E.g。

a <- matrix(ncol=4,nrow=4, c(0,1,4,4,1,0,4,4,4,4,0,2,4,4,2,0))
b <- hclust(as.dist(a), method="single")
plot(b, hang=-1)

这可能有用。