2

次の形式のツリー構造を作成するためのパッケージまたは簡単な方法がRにあるかどうか誰かが知っていますか?

ここに画像の説明を入力してください

私は上記のような素敵なプロットを作成する方法を探していません。私の最大の問題は、ノード、葉、子ノードが明確に区別されるようなツリーを操作する方法を見つけることです。たとえば、文字列またはベクトルを調整することで2つのリーフを切り替えられるようにしたいと思います。したがって、これは主に「データストレージ」の問題だと思います。

私はかなり長い間探していて、「デンドログラム」と呼ばれるパッケージに出くわしました。このパッケージの問題は、(私が知る限り)「H」や「V」などの内部ノードのラベル付けが許可されていないことです。最後の葉だけが値または文字列を運ぶことができます。

私が見つけたもう1つのパッケージは「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 に答える