从igraph.es(边序列)到R中的节点
我想根据它们连接的节点的值(当然是在R IGRAPHE中),设置图形中某一范围边的边属性 当我在图形对象中检索某条边时,我会得到一个边序列对象:从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
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来确认。非常感谢。