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

Rの解析に役に立つ記事
スポンサーリンク

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

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

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

スポンサーリンク

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

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

#パッケージのインストール
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)
#&#12487;&#12540;&#12479;&#12398;&#12503;&#12525;&#12483;&#12488;
hasse(TestData)

#&#12458;&#12522;&#12472;&#12490;&#12523;&#12495;&#12483;&#12475;&#22259;&#12398;&#12487;&#12540;&#12479;&#12434;&#20316;&#25104;
#&#12510;&#12488;&#12522;&#12483;&#12463;&#12473;&#12391;&#25351;&#23450;&#12375;&#12414;&#12377;,[&#22987;&#28857;, &#32066;&#28857;]&#12398;&#20301;&#32622;&#12395;TRUE&#12391;&#32218;(&#12456;&#12483;&#12472;)&#12434;&#25551;&#20889;&#12375;&#12414;&#12377;
#&#12494;&#12540;&#12489;&#25968;5,"a1"&#12363;&#12425;"a2, a3, a4"&#12395;&#12388;&#12394;&#12370;"a5"&#12395;&#38598;&#32080;&#12375;&#12414;&#12377;
#&#12394;&#12362;&#12289;&#12464;&#12521;&#12501;&#12434;&#20998;&#12369;&#12390;&#12503;&#12525;&#12483;&#12488;&#12377;&#12427;&#22580;&#21512;&#12399;&#20998;&#21106;&#12375;&#12383;&#12356;&#21015;&#12434;&#20840;&#12390;FALSE&#12395;&#12375;&#12414;&#12377;
data <- matrix(data = FALSE, ncol = 5, nrow = 5)

#TRUE&#12398;&#20195;&#20837;
data[1, 2] <- data[1, 3] <- data[1, 4] <- TRUE
data[2, 5] <- data[3, 5] <- data[4, 5] <- TRUE

#&#12487;&#12540;&#12479;&#12398;&#12503;&#12525;&#12483;&#12488;:hasse&#12467;&#12510;&#12531;&#12489;
hasse(data)

#&#21516;&#19968;&#12524;&#12505;&#12523;&#12395;&#12354;&#12427;&#12494;&#12540;&#12489;&#12434;&#12414;&#12392;&#12417;&#12390;&#12503;&#12525;&#12483;&#12488;
#[&#22987;&#28857;, &#32066;&#28857;]&#12364;&#37325;&#35079;&#12377;&#12427;&#12424;&#12358;&#12395;TRUE&#12434;&#20195;&#20837;&#12375;&#12414;&#12377;
#TRUE&#12398;&#20195;&#20837;
data[2, 3] <- data[2, 4] <- data[3, 2] <- 
  data[3, 4] <- data[4, 2] <- data[4, 3] <- TRUE
#&#12503;&#12525;&#12483;&#12488;:list(cluster = TRUE)&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12394;&#12362;&#12289;&#12494;&#12540;&#12489;&#12521;&#12505;&#12523;&#12399;labels&#12458;&#12503;&#12471;&#12519;&#12531;&#12391;&#25351;&#23450;&#12375;&#12414;&#12377;
hasse(data, labels = c("A", "B", "C", "D", "E"), list(cluster = TRUE))

出力例

・generateRandomDataコマンド

generateRandomData

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

hasse

・同一レベルにあるノードをまとめてプロット

list(cluster = TRUE)

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました