Rで解析:ハッセ図の描写に便利です!「hasseDiagram」パッケージ


ハッセ図は順序関係や群を理解するのに有効な方法だと思います。ハッセ図を描写する「hasseDiagram」パッケージを紹介します。ハッセ図は非常にシンプルな思想だと思います。

秋の夜長に美しいハッセ図を見るために、generateRandomDataコマンドを実行するのも風流かもしれません。もしかすると、ガロアのような発想が生まれるかも。

パッケージのバージョンは0.1.1。R version 3.2.1でコマンドを確認しています。


パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("hasseDiagram")
#下記を事項してRgraphvizパッケージインストール後に
#Update all/some/none? [a/s/n]:と表示された場合はnを選択してください
source("https://bioconductor.org/biocLite.R")
biocLite("Rgraphviz")

実行コマンド

詳細はコマンド、パッケージヘルプを確認してください。

#パッケージの読み込み
library("hasseDiagram")

#ハッセ図データ例の作成:generateRandomDataコマンド
#ノード数の指定:nrNodesオプション, グラフ数の指定:minGraphsオプション
#ハッセ図の複雑度:densityオプション;0で結合なし,1で一直線です
TestData <- generateRandomData(nrNodes = 16, minGraphs = 2, density = .7)
#データのプロット
hasse(TestData)

#オリジナルハッセ図のデータを作成
#マトリックスで指定します,[始点, 終点]の位置にTRUEで線(エッジ)を描写します
#ノード数5,"a1"から"a2, a3, a4"につなげ"a5"に集結します
#なお、グラフを分けてプロットする場合は分割したい列を全てFALSEにします
data <- matrix(data = FALSE, ncol = 5, nrow = 5)
     [,1]  [,2]  [,3]  [,4]  [,5]
[1,] FALSE FALSE FALSE FALSE FALSE
[2,] FALSE FALSE FALSE FALSE FALSE
[3,] FALSE FALSE FALSE FALSE FALSE
[4,] FALSE FALSE FALSE FALSE FALSE
[5,] FALSE FALSE FALSE FALSE FALSE
#dataを下記の形になるようにTRUEを代入します
     [,1]  [,2]  [,3]  [,4]  [,5]
[1,] FALSE TRUE  TRUE  TRUE  FALSE
[2,] FALSE FALSE FALSE FALSE TRUE
[3,] FALSE FALSE FALSE FALSE TRUE
[4,] FALSE FALSE FALSE FALSE TRUE
[5,] FALSE FALSE FALSE FALSE FALSE
#TRUEの代入
data[1, 2] <- data[1, 3] <- data[1, 4] <- TRUE
data[2, 5] <- data[3, 5] <- data[4, 5] <- TRUE
#データのプロット:hasseコマンド
hasse(data)

#同一レベルにあるノードをまとめてプロット
#[始点, 終点]が重複するようにTRUEを代入します
   [,1]  [,2]  [,3]  [,4]  [,5]
[1,] FALSE TRUE  TRUE  TRUE  FALSE
[2,] FALSE FALSE TRUE  TRUE  TRUE
[3,] FALSE TRUE  FALSE TRUE  TRUE
[4,] FALSE TRUE  TRUE  FALSE TRUE
[5,] FALSE FALSE FALSE FALSE FALSE
#TRUEの代入
data[2, 3] <- data[2, 4] <- data[3, 2] <- 
data[3, 4] <- data[4, 2] <- data[4, 3] <- TRUE
#プロット:list(cluster = TRUE)オプション
#なお、ノードラベルはlabelsオプションで指定します
hasse(data, labels = c("A", "B", "C", "D", "E"), list(cluster = TRUE))

出力例

・generateRandomDataコマンド
generateRandomData

・オリジナルハッセ図のデータをプロット
hasse

・同一レベルにあるノードをまとめてプロット
list(cluster = TRUE)


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク