4

私は次の問題を抱えています:
私は次のグラフを持っています:g6これにはが含まれていませんisolate vertices。頂点は主に2つにグループ化されethnic groups、属性として指定されます。つまり、次のようになりますmestizo and saraguro
だから私はsubgraph次のようにサラグロのオプションを実行します:

g2saraguro <-subgraph(g6、which(V(g6)$ ethnic == "saraguro"))
summary(g2saraguro)

うまくいった:

頂点:166
エッジ:330
指示:TRUE
グラフ属性なし。
頂点属性:ii、村、parroquia、カントン、provinz、kindR、民族、状況、researcha。
エッジ属性:質問、アクティビティ。

ただし、同じことをで試してみると、次のmestizoように識別されるため、問題が発生します。

s2mestizo <-subgraph(g6、V(g6)$ ethnic == "mestizo")
summary(s2mestizo)
頂点:2
エッジ:3方向
:TRUE
グラフ属性なし。
頂点属性:ii、村、parroquia、カントン、provinz、kindR、民族、状況、researcha。
エッジ属性:質問、アクティビティ。

しかし、実際にはそうではありません。私が見た場合、大多数はV(g6)$ethnic、 問題がどこにあるのか本当にわかりません。aを形成する手順 は、。なしで、または同様の方法で行う必要があります。 ウラジミール に関して 助けてくれてありがとうmestizo!!
igraph 0.6subgraph1-based indexing


4

1 に答える 1

3

which2番目のケースで関数を使用するのを忘れました。つまり、代わりに

s2mestizo <- subgraph(g6,V(g6)$ethnic=="mestizo")

あなたは書くべきです

s2mestizo <- subgraph(g6, which(V(g6)$ethnic=="mestizo"))

また、igraph 0.5.x以前を使用している場合は、igraphwhichの0ベースのインデックス付けのため、結果から1を引く必要があることに注意してください。これはigraph0.6で修正されているため、igraph 0.6以降を使用している場合は、1を引く必要はありません。

編集:最近のコメントに基づくと、igraph 0.5.x以前を使用しているようです(summary0.6ではの出力形式が異なるため)。この場合、igraph 0.5.x以前のバージョンはゼロベースの頂点インデックスを使用するため、結果から1を引く必要があります。whichしたがって、正しい行は次のようになります。

s2mestizo <- subgraph(g6, which(V(g6)$ethnic=="mestizo")-1)
于 2012-09-11T19:03:20.323 に答える