3

次のようなデータセットがあります (これは任意の長さになりますが、最後に 1 つのカウント列があります)。

dd <- data.frame(
   "level1" = c("a", "a", "b"),
   "level2" = c("c", "d", "c"),
   "cnt" = c(1, 3, 5)
)

そして、この構造の見栄えの良いツリーを、手間をかけずに印刷したいと思います:)。すでにソートを実行し、境界条件を調べてデータを出力しようとしました。

理想的には、ツリー構造は上記のデータから次のようになります。

level1     level2
a: 4  ---> c: 1
      ---> d: 3
b: 5  ---> c: 5

データフレームの最後のベクトルがツリーの個別のブランチを合計する場所ですが、視覚化のための優れた図があります。任意の数のレベルを持つことができるため、最後のベクトル。私自身のツリーアルゴリズムのセットを書き出さずに、これを進める簡単な方法を知っている人はいますか?

グラフのイメージ: ここに画像の説明を入力

4

1 に答える 1

1

たとえばパッケージを使用igraphすると、少しの作業で取得できます。データのタイプミスを修正し、新しいエッジを追加して、よりきれいなグラフを取得しました。私のグラフは次のようになります。

ここに画像の説明を入力

そしてここに私のRコード:

 actors <- data.frame(name=c('a','b','c','d'))
relations <- data.frame(from=c("a", "a", "b",'c'),
                        to=c("c", "b", "c",'d'),
                        weight=c(1, 3, 5,4))
g <- graph.data.frame(relations, directed=TRUE, 
                      vertices=actors)

E(g)$label=E(g)$weight
E(g)$label.cex=3
plot(g,edge.width=E(g)$weight,layout=layout.fruchterman.reingold)
于 2013-06-27T00:59:40.003 に答える