【发布时间】:2016-04-30 09:36:41
【问题描述】:
我想根据它们连接的节点的值(当然在 R igraph 中)设置图中某个范围的边的边属性。
当我在我的图形对象中检索某个边时,我会得到一个边序列对象:
E(g)[1]
# + 1/2080 edge (vertex names):
# [1] 35->1
class(E(g)[1])
# [1] "igraph.es"
如何从该边缘序列中获取实际边缘?我发现的唯一相关函数是as_ids:
as_ids(E(g)[1])
# [1] "35|1"
然后我必须拆分字符串以获取节点 ID,将 ID 转换为整数,使用 V(g)[x] 表示法获取节点,检查我感兴趣的属性,最后设置边缘属性。
这是一个不切实际且浪费的过程。有没有更直接的方法来做同样的事情?
我知道%--% 表示法,在某些情况下,它允许我提前根据节点属性过滤边缘,从而解决了我的问题。但在许多其他情况下,这种表示法没有帮助(当边缘属性值与节点属性具有更复杂的关系时),我想知道是否有更通用的方法可以从一个边缘序列到相应的节点对。
【问题讨论】: