我有一个树的叶子列表和我希望它们合并的高度,即它们最近的共同祖先的高度。假设所有叶子都在高度为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
答案 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)
这可能有用。