如何通过边列表迭代igraph R访问顶点

时间:2017-05-01 16:34:31

标签: r attributes igraph vertex edge-list

我试图使用for循环访问边缘中每个顶点对的顶点,如下所示:

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的机制,以确保我正确地索引边缘。任何建议将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分: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 }
}