2017-05-01 76 views
0

我試圖用一個for循環像這樣來訪問每個頂點對的頂點的邊緣:如何通過邊列表迭代的igraph R接入頂點

for (e in E(G)) { do stuff } 

不過,我不知道該怎麼得到每個頂點e。我試圖返回頂點列表中每個頂點的類型。我可以得到頂點屬性像我下面做,雖然我不知道這是否是通過邊緣列表進行迭代,並讓所有的邊緣的確定方式:

i = 1 

for (e in get.edgelist(G)) { 
    if(V(G)[get.edgelist(G)[i,][1]]$type %in% vector && 
     V(G)[get.edgelist(G)[i,][2]]$type %in% vector) { do stuff } 
    i = i + 1 
} 

我也注意到,e in E(G)返回一個索引,所以這樣做是正確的嗎?

for (e in E(G)) { 
    if(V(G)[get.edgelist(G)[e,][1]]$type %in% vector && 
     V(G)[get.edgelist(G)[e,][2]]$type %in% vector) { do stuff } 
} 

我相信最後的例子我想要做什麼,但我不知道IGRAPH的機制,以確保我正確索引的邊緣。任何建議將不勝感激。提前致謝。

回答

0

總結邊緣頻率這似乎工作:

for (e in E(G)) { 
if(V(G)[get.edgelist(G)[e,][1]]$type %in% vector && 
    V(G)[get.edgelist(G)[e,][2]]$type %in% vector) { do stuff } 
}