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

如何高效收缩边列表DataFrame:合并节点并汇总边权重

节点收缩:高效合并DataFrame中边权重的方法

我有一个存储节点对边权重的DataFrame df,数据如下:

df <- data.frame(c("A","A","B","B","C","C"),
                 c("B","C","A","C","A","B"),
                 c(2,3,6,4,9,1))
colnames(df) <- c("node_from", "node_to", "weight")

print(df)
# 输出:
#   node_from node_to weight
# 1        A       B      2
# 2        A       C      3
# 3        B       A      6
# 4        B       C      4
# 5        C       A      9
# 6        C       B      1

我希望收缩该DataFrame,合并节点A和B,汇总这两个节点与其他节点(此处仅为C)之间的所有边权重,最终得到A、B间的边消失,AB作为单个节点的边列表:

print(df_contracted)
# 输出:
#   node_from node_to weight
# 1       AB       C      7
# 2        C      AB     10

请问针对更大的DataFrame,是否有高效的实现方式?我可以用igraph包的graph_from_data_frame将DataFrame转为图,再用contract函数处理,但因需多次执行该操作,不想反复进行转换与回转换。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:53:30