2016-12-12 5 views
2

私はグラフを作成してから、関数write.graph(パッケージigraph)を使ってグラフを作成しようとしています。したがって、Iは、距離行列グラフの作成と頂点名の維持

require(vegan) 
data(dune) 
dis <- vegdist(dune) 

を作成し、私は明示的rownamesを定義:

x <- c("dune1") 
for (i in 1: 20){ 
    n <- paste("dune", i, sep="") 
    x <- append(x, n) 

} 
rownames(dune) <- x 

以下の手順Iが最小スパニングツリーアルゴリズムを介して無向グラフを作成します。

gg <- graph.adjacency(as.matrix(dis), weighted=TRUE) 
gg_mst <- as.undirected(mst(gg)) 

この時点で、pajekで開くように表現したいと思います。

次のグラフ取得
write.graph(gg_mst, "graph.net", format="pajek") 

enter image description here

を名前が失われ、私はwrite.graphを使用することを行うために!私は別の形式を使用して、同じ機能を使用する場合

それにも関わらず、:

write.graph(gg_mst, "graph.txt", format="ncol") 

私はrownamesを維持するファイルを入手:

dune1 dune3 0.448275862068966 
dune2 dune3 0.341463414634146 
dune2 dune10 0.294117647058824 
dune3 dune4 0.270588235294118 
... ... ... 

それはwrite.graphの使用とに関連するバグです形式「pajek」?

答えて

2

あなたは、このようなこの1 http://vlado.fmf.uni-lj.si/pub%20/networks/pajek/default.htmまたはgephiなどpajekビューアに示す頂点の名前を持つことができるようにするために、頂点のID属性を割り当てる必要があります。

dis <- vegdist(dune) 
x <- c() 
for (i in 1: 20){ 
    n <- paste("dune", i, sep="") 
    x <- append(x, n) 
} 
gg <- graph.adjacency(as.matrix(dis), weighted=TRUE) 
gg_mst <- as.undirected(mst(gg)) 
V(gg_mst)$id <- x # assign the ids 
write.graph(gg_mst, "graph.net", format="pajek") 

pajekで開くと、頂点IDが正しく表示されます。

enter image description here

関連する問題