You need to enable JavaScript to run this app. 如何使用R语言igraph构建网络的度相关边计数矩阵
优惠活动
大模型
产品
解决方案
定价
更多

如何使用R语言igraph构建网络的度相关边计数矩阵

度关联计数矩阵极简实现方案

你需要的度-度边计数矩阵可以通过提取边端点度属性+交叉统计的方式快速实现,无需嵌套循环,代码更简洁、大网络下的计算效率也更高:

library(igraph)
g <- make_graph("Zachary")

# 获取所有边两端节点的度
edge_degree_pair <- cbind(
  degree(g, head_of(g, E(g))),
  degree(g, tail_of(g, E(g)))
)

# 按度的唯一取值做交叉计数
deg_levels <- sort(unique(degree(g)))
m <- table(
  factor(edge_degree_pair[,1], levels = deg_levels),
  factor(edge_degree_pair[,2], levels = deg_levels)
)

# 无向图对称修正:边的首尾顺序不影响计数,合并双向统计结果
m <- m + t(m)
diag(m) <- diag(m) / 2

# 输出结果与你的实现完全一致
print(m)

实现说明

  • 核心逻辑是直接遍历所有边提取两端节点度属性,用table函数做交叉统计,计算复杂度仅与网络边数正相关,远高于原实现中遍历所有度组合查询边数的方案
  • 上述代码针对无向图做了对称修正,如果你处理的是有向图,不需要加最后两行的对称处理,行对应源节点度、列对应目标节点度即可
  • 如果需要得到概率矩阵,直接将矩阵所有元素除以总边数即可

内容的提问来源于stack exchange,提问作者avgoustisw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 10:54:06