0

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

1 回答 1

0

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

这可能有用。

于 2013-03-05T14:42:37.013 回答