在R package igraph中,如何通过将edge属性除以out节点的node属性来规范化边缘属性?

时间:2015-09-08 04:13:46

标签: r graph normalization igraph

基本上如何将相同节点属性的除法应用于将该节点作为边缘起源的节点的所有边。例如,这可用于对邻接矩阵进行行规范化。

1 个答案:

答案 0 :(得分:0)

假设权重位于名为weight的边缘属性中,您可以执行以下操作:

E(g)$weight / strength(g, mode="out")[get.edgelist(g)[,1]]

基本思想是strength(g)为每个顶点提供入射在其上的边的权重之和。 mode="out"确保仅考虑出站边。然后使用边列表的第一列(即每个边的源顶点)索引强度向量,以获得一个向量,其中每个元素属于一个边并告诉其源顶点的总权重。然后用元素方式将实际权重向量除以。

如果权重在另一个属性中,则必须将该属性的名称传递给strength()