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

如何实现两组带指定成员的网络连通(R语言场景)

解决方案

你的需求是构建成员与对应Core相连、两个Core之间也相连的网络,原代码会错误生成同一Core下成员之间的连接——因为crossprod(table())会统计所有节点的共现关系,而这并非你需要的。以下是正确实现方式:

步骤说明

  • 将宽格式数据转换为长格式,提取每个Core对应的有效成员,生成Core与成员的边
  • 手动添加两个Core之间的连接边
  • 使用igraph基于边列表构建无向图并绘制

完整代码

library(igraph)
library(tidyr)

# 处理数据集,生成Core与成员的边
edges <- df %>%
  pivot_longer(cols = starts_with("member"), 
               names_to = NULL, values_to = "member") %>%
  filter(member != "") %>%
  select(from = Core, to = member)

# 添加两个Core之间的连接
edges <- rbind(edges, data.frame(from = "Bestman", to = "Tetra"))

# 构建无向图并可视化
g <- graph_from_data_frame(edges, directed = FALSE)
plot(g, 
     edge.width = 1,
     vertex.size = 15,
     vertex.label.cex = 0.8)

原代码问题分析

原代码中crossprod(table(cbind(df[1], stack(df[-1]))[-3]))会计算所有节点的共现次数:同一Core下的所有成员会因为同属一行而产生共现,导致成员之间也生成了不必要的连接,不符合你只保留「成员-Core」「Core-Core」连接的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:41:42