2

有谁知道R中是否有一个包或简单的方法来创建以下形式的树结构:

在此处输入图像描述

我不是在寻找一种方法来创建像上面这样的漂亮情节。我最大的问题是找到一种方法来处理这样一棵树,其中节点、叶子和子节点之间有明显的区别。例如,我希望能够通过调整字符串或向量来切换两个叶子。所以我想这主要是一个“数据存储”问题。

我一直在寻找很长一段时间,偶然发现了一个名为“Dendrogram”的包。这个包的问题是(据我所知)它不允许标记内部节点,例如“H”和“V”。只有最后的叶子可以携带一个值或字符串。

我发现的另一个包是“rpart”,但我认为这些只对回归树有用。

如果有人知道一些事情,我将不胜感激!

4

2 回答 2

1

如果你有一个边缘列表,你可以用 igraph 做一些非常相似的事情:

el <- matrix( c( "H" , "V" , "H" , "V2" , "V" , "1" , "V" , "V3" , "V3" , "3" , "V3" , "4" , "V2" , "2" , "V2" , "H2" ) , ncol = 2 , byrow = TRUE )
g <- graph.edgelist(el , directed = TRUE )
V(g)$label <- get.vertex.attribute(g, 'name')
plot(g,layout=layout.reingold.tilford)

您还可以将el命令中的节点命名为字母,然后用于get.vertex.attribute(g, 'name')查看生成的节点的名称,然后传递您喜欢的任何字符向量以获取图片中的标签。 在此处输入图像描述

于 2013-03-27T13:52:44.680 回答
1

是的,rpart 可能不适合您的需要。尝试phylobase包。

如果您的树可以从文件中读取,那么您可能会使用某种类似这样的 XML 树解析器

于 2013-03-27T14:01:33.100 回答