0

我正在尝试使用这样的 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 的机制以确保我正确索引边缘。任何建议将不胜感激。提前致谢。

4

1 回答 1

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 }
}
于 2017-05-01T18:04:09.167 回答