在R中画一棵树,给定叶子对和它们合并的高度



我有一个树中的叶子列表和我希望它们合并的高度,即它们最近的共同祖先的高度。所有的叶子都假定高度为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   

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

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)

相关内容

  • 没有找到相关文章

最新更新