Rのigraphでグラフ処理
BOOST Graph Libraryにチャレンジするもコンパイルエラーが読みにくくて挫折.
Cからも叩けるということでigraphを使う.
1.インストールの準備
CRANに入っているのでinstall.packageでplyrと依存関係があるが,2015/10/20現在だとUbuntu14.04のRはバージョンが古くてplyrが提供されていない.そこで,Rのバージョン自体を上げる必要がある.以下がそのコマンド.
これをやっておくとflycheckが中で呼び出しているrlinttoolも入れられるのでEmacsでのオンザフライの文法チェックがRでもできるようになる.
$ sudo apt-get remove r-base r-core $ sudo add-apt-repository "deb http://cran.ism.ac.jp/bin/linux/ubuntu trusty/" $ gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9 $ gpg -a --export E084DAB9 | sudo apt-key add - $ apt-get update $ sudo apt-get install r-base # たまたまなのか,上の東工大リポジトリにアクセスできなかったので実際は下のUCLAで入れた. # sudo add-apt-repository "deb http://cran.stat.ucla.edu/bin/linux/ubuntu trusty/"
2.グラフの作り方
・色々とあるけど,あんまり考えずに隣接リスト(エッジリスト)でやる,graph_from_edgelistが一番いいと思う.
・名前とか重みは後で$name, $weightでつけられる.プロット時の色なども$colorで指定できる.
3.注意点
・ノード番号,枝番号は穴なく埋められている.つまり,枝数やノード数を変化させるようなグラフ操作,例えば誘導部分グラフ生成(induced_subgraph)などはノードのインデックスが変わってしまうので注意する.