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

In R package igraph, how can I normalize an edge attribute by dividing the edge attribute by a node attribute of the out-node?

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

假设权重位于名为 weight 的边属性中,您可以这样做:

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

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

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