You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用igraph实现二部图投影并添加记录中间连接节点的边属性

igraph 原生支持该需求,只需在调用bipartite_projection时开启保留共同节点的参数即可,无需额外手动计算。

完整实现代码

require(igraph)
set.seed(123)
# 生成示例二部图
g <- sample_bipartite(5, 5, p = .5)
V(g)$name <- c(letters[1:5], 1:5)

# 投影时开启保留共同节点参数
# 注意:旧版igraph需将参数改为keep.common.vertices = TRUE
proj_result <- bipartite_projection(g, keep_common = TRUE)
g1 <- proj_result[[1]]
g2 <- proj_result[[2]]

# 可选:将共同节点的内部ID转为自定义的name属性,方便直接读取
E(g1)$common_node_names <- lapply(E(g1)$common_vertices, function(x) V(g)$name[x])
E(g2)$common_node_names <- lapply(E(g2)$common_vertices, function(x) V(g)$name[x])

结果验证示例

比如查看g1(字母节点投影图)中a节点和c节点的关联中间节点:

E(g1)[a %--% c]$common_node_names

运行后输出的列表就是两个节点共同连接的数字节点,和手动标注的关联信息完全一致。

补充说明

  • g1是原二部图中第一类节点(正方形标记的a-e字母节点)的投影图,边属性common_node_names存储两个字母节点通过哪些数字节点建立关联
  • g2是原二部图中第二类节点(圆形标记的1-5数字节点)的投影图,边属性common_node_names存储两个数字节点通过哪些字母节点建立关联

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:12:03