r-forgeサイトからアクセスしたドキュメントには、「頂点とエッジのigraphには数値の頂点IDがあります。頂点IDは常に連続しており、ゼロから始まります」と書かれています。したがって、グラフ関数に送信する前に、そのベクトルから1を引く必要があります。そうしないと、接続されていない「0」の頂点になってしまいます。接続されていない「0」頂点を回避するための一般的な方法は、ベクトルから最小値を減算することです。
> g <- graph( c(1,1, 1,4, 2,1, 2,2, 3,1, 3,4, 5,1, 5,2) -1)
> g
Vertices: 5
Edges: 8
Directed: TRUE
Edges:
[0] 0 -> 0
[1] 0 -> 3
[2] 1 -> 0
[3] 1 -> 1
[4] 2 -> 0
[5] 2 -> 3
[6] 4 -> 0
[7] 4 -> 1
> g2 <- graph( c(1,1, 1,4, 2,1, 2,2, 3,1, 3,4, 5,1, 5,2) )
> g2 <- delete.vertices(g2, 0)
> g2
Vertices: 5
Edges: 8
Directed: TRUE
Edges:
[0] 0 -> 0
[1] 0 -> 3
[2] 1 -> 0
[3] 1 -> 1
[4] 2 -> 0
[5] 2 -> 3
[6] 4 -> 0
[7] 4 -> 1
> all.equal(g,g2)
[1] TRUE
ですから、あなたの質問は本当に「自分のルールを使って頂点にラベルを付けるにはどうすればいいのか」ということかもしれないと思います。これを試して:
g <- graph( c(1,1, 1,4, 2,1, 2,2, 3,1, 3,4, 5,1, 5,2) -1)
plot(g, vertex.label=1:5)
ドキュメントの冒頭のセクションにも次のように書かれています。
igraphのホームページはhttp://igraph.sourceforge.netにあります。特にドキュメントのセクションを参照してください。質問やコメントがある場合は、igraph-helpメーリングリストに参加してください。