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

How to access vertices via edge list iteration igraph R

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

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

但是,我不知道如何获取e中的每个顶点。我正在尝试 return 每个顶点的类型,它在顶点列表中。我可以像下面那样获取顶点属性,但我不确定这是否是遍历边列表并获取所有边的好方法:

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) return 是一个索引,所以这样做是否正确?

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