从igraph.es(边序列)到R中的节点

从igraph.es(边序列)到R中的节点,r,graph,igraph,edges,R,Graph,Igraph,Edges,我想根据它们连接的节点的值(当然是在R IGRAPHE中),设置图形中某一范围边的边属性 当我在图形对象中检索某条边时,我会得到一个边序列对象: E(g)[1] # + 1/2080 edge (vertex names): # [1] 35->1 class(E(g)[1]) # [1] "igraph.es" 如何从该边序列获取实际边?我找到的唯一相关函数是as\u id: as_ids(E(g)[1]) # [1] "35|1" 然后我必须拆分字符串以获得节点ID,将ID

我想根据它们连接的节点的值(当然是在R IGRAPHE中),设置图形中某一范围边的边属性

当我在图形对象中检索某条边时,我会得到一个边序列对象:

E(g)[1]
# + 1/2080 edge (vertex names):
# [1] 35->1
class(E(g)[1])
# [1] "igraph.es"
如何从该边序列获取实际边?我找到的唯一相关函数是
as\u id

as_ids(E(g)[1])
# [1] "35|1"    
然后我必须拆分字符串以获得节点ID,将ID转换为整数,使用
V(g)[x]
符号获取节点,检查我感兴趣的属性,最后设置边缘属性

这是一个不切实际和浪费的过程。有没有更直接的方法可以做到这一点


我知道
%--%
表示法,在某些情况下,它允许我提前根据节点属性过滤边,从而解决了我的问题。但在许多其他情况下,这种表示法没有帮助(当边属性值与节点属性的关系更复杂时),我想知道是否有更通用的方法从一个边序列到对应的一对节点。

您可以使用
end
函数到达顶点:

ends(g, E(g)[1])

你知道python中是否有与igraph等价的函数吗?@sera你不需要python中的函数。您可以轻松地使用类
Edge
目标
属性:谢谢。我想如果我使用ends=[e.tuple for e in g.es],我会得到同样的结果,对吗?@sera老实说,我不是Python用户,所以我不确定。但这看起来是对的,就是这样!我用R来确认。非常感谢。