两个顶点之间的igraph边

两个顶点之间的igraph边,r,graph,igraph,social-graph,sna,R,Graph,Igraph,Social Graph,Sna,我是R和igraph的新手,我想知道是否有人能在以下方面帮助我 我想找到图中两个顶点之间的边权重。我的图形结构由正常自我(node1)、alter(node2)和它们之间的边的权重定义 我知道我可以使用E(igraph_Friendly)[from(5)]$weight获取源自节点编号5的边列表中每个边的权重 我可以使用E(igraph_Friendly)[to(10)]$weight找到节点编号10上结束的边列表中每个边的权重 但是,如果我只是想找到简单连接节点5和节点10的边的权重呢 或者,

我是R和igraph的新手,我想知道是否有人能在以下方面帮助我

我想找到图中两个顶点之间的边权重。我的图形结构由正常自我(node1)、alter(node2)和它们之间的边的权重定义

我知道我可以使用E(igraph_Friendly)[from(5)]$weight获取源自节点编号5的边列表中每个边的权重 我可以使用E(igraph_Friendly)[to(10)]$weight找到节点编号10上结束的边列表中每个边的权重

但是,如果我只是想找到简单连接节点5和节点10的边的权重呢

或者,如果我可以在所有边的列表中获得连接节点5和10的边的标识符,E(igraph\u Friendly),也可以


非常感谢你的帮助,我一直在四处寻找,非常感谢你的帮助

在igraph 0.6及以上版本中,这实际上非常容易,因为您可以 将图形视为邻接矩阵(或加权邻接矩阵) 矩阵(在您的情况下):

或者,如果你不想要稀疏矩阵,那么

g[sparse=FALSE]

请参见
?“[.igraph”
了解更多信息。

Gabor对邻接矩阵的使用有所帮助。然而,我花了一段时间才弄明白如何将带权重的边列表转换为邻接矩阵。我尝试使用graph.data.frame以通常的方式进行转换,但当我尝试将igraph对象转换为和邻接矩阵时,会出现一个奇怪的错误(错误:在.M.kind(x)中出错:尚未为矩阵w/typeof character实现)。这篇文章帮助实现了以下技巧:


然而,我从R help email list help中发现,这个简单的操作符直接作用于igraph对象:E(g)[5%--%10]请参阅详细信息

欢迎使用!如果不太难,请考虑给予A,因为这将大大增加您获得答案的机会。这有助于。然而,我花了一段时间来找出如何将我的权重列表变成ADJANCE矩阵。我尝试用Gras.DATA Frand通常的方式来做它,但随后会得到A。当我尝试将igraph对象转换为和邻接矩阵时,出现了一个奇怪的错误(错误:error in.M.kind(x):尚未为矩阵w/typeof character实现)。这篇文章帮助实现了这一技巧:。我从电子邮件列表帮助中发现,最有效的方法是直接在igraph对象上使用这个简单的运算符:E(g)[5%--%10]$weight如果您遇到这个错误,我相信:解决方法是在允许的情况下,通过在
get.adjacenty()
中设置
sparse=FALSE
,或者在调用
graph.data.frame()之前,将字符(=字符串)属性转换为数字(是边权重,对吗?)
。如果要对整个矩阵执行此操作,则通常只需执行
g[]
,这将为您提供(加权)邻接矩阵。如果使用稀疏矩阵(IGRAPHE中的默认值),则仅当权重为数字时才有效。我在回答中扩展了该示例。
g[]
g[sparse=FALSE]