3

write.graphグラフを作成してから、関数(package )で書き込もうとしていますigraph。したがって、距離行列を作成します

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

次に、行名を明示的に定義します。

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

}
rownames(dune) <- x

次の手順で、最小スパニング ツリー アルゴリズムを使用して無向グラフを作成します。

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

この時点で、pajek で開くように表現したいと思います。そのために、write.graph を使用します。

write.graph(gg_mst, "graph.net", format="pajek")

次のグラフを取得します。 ここに画像の説明を入力

名前が失われました!

それにもかかわらず、別の形式を使用して同じ関数を使用する場合:

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

行名を保持するファイルを取得します。

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

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

4

1 に答える 1

3

このhttp://vlado.fmf.uni-lj.si/pub%20/networks/pajekなどの pajek ビューアに頂点の名前を表示できるようにするには、頂点のid属性を割り当てる必要があります。 /default.htmまたは gephi. 次のように、コードの数行を変更する必要があります。

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 が正しく表示されます。

ここに画像の説明を入力

于 2016-12-13T19:17:54.070 に答える