R网络分析
使用igraph包构建网络图,计算中心性指标,可视化社交网络与关系 · 难度:入门 · +15XP
网络分析:揭示连接关系
网络分析研究实体之间的关系,节点代表实体,边代表关系。常用在社会网络、生物网络等领域。
1. 创建网络图
library(igraph)
# 从边列表创建图
edges <- data.frame(from=c('A','A','B','C','D'), to=c('B','C','C','D','E'))
g <- graph_from_data_frame(edges, directed=FALSE)
plot(g, main='简单网络图')2. 计算中心性指标
degree(g) # 度中心性
betweenness(g) # 介数中心性
closeness(g) # 接近中心性
eigen_centrality(g)$vector # 特征向量中心性3. 使用内置数据集
data(karate, package='igraphdata') # 需要安装igraphdata包
# 或者使用内置演示数据
karate <- make_graph('Zachary')
plot(karate, vertex.label=V(karate)$name, main='空手道俱乐部网络')4. 社区发现
cluster <- cluster_louvain(g)
plot(cluster, g, main='社区发现')网络分析常用指标:
| 指标 | 意义 |
|---|---|
| 度中心性 | 节点连接数量 |
| 介数中心性 | 节点作为桥梁的重要性 |
| 接近中心性 | 节点到其他节点的平均距离 |
练习提示:创建包含6个节点和8条边的网络,计算所有节点的度并绘图。