如何通过Edge List Iteration igraphR访问顶点



我正在尝试使用这样的循环访问边缘中每个顶点对的顶点:

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的机制要确保我正确地索引了边缘。任何建议将不胜感激。预先感谢。

总结边缘频率这似乎有效:

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 }
}

最新更新