根据给定的树叶对和高度,在R中绘制一棵树

根据给定的树叶对和高度,在R中绘制一棵树,r,tree,cluster-analysis,dendrogram,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返回的格式或其他易于打印的格式 编辑以添加图表: 上述数据集的树如下

我有一张树上叶子的列表,以及我希望它们合并的高度,即它们最近共同祖先的高度。假设所有叶片高度均为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”都很容易理解。有人已经试过了,但显然还是有问题。您还可以尝试使用与集群一致的伪值填充距离矩阵,然后将其提交给hclust。例如

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)

a那么剩下的距离是多少?b-d和a-c也是4,这是隐含的距离吗。