R - 从矩阵创建网络

问题描述

我有一个类似的数据集:

Abruzzo<- c(1,0.76,0.8,0.90)
Campania<- c(0.76,1,0.62,0.69)
Calabria <- c(0.80,0.85)
Puglia <- c(0.90,0.69,0.85,1)
X <-data.frame(Abruzzo,Campania,Calabria,Puglia)
row.names(X)<- c ('Abruzzo','Campania','Calabria','Puglia')

该矩阵包含余弦相似度值。 我想创建一个网络(使用 igraph),其中 4 个节点(Abruzzo、Campania、Calabria、Puglia)都是互连的,链接的大小取决于矩阵的相应值。 谢谢

解决方法

您有一个加权邻接矩阵。使用igraph::graph_from_adjacency_matrix

library(igraph)
X <- as.matrix(X)
diag(X) <- 0
g <- graph_from_adjacency_matrix(X,mode = "lower",weighted = "weight")
plot(g,edge.width = E(g)$weight,edge.label = E(g)$weight)

enter image description here

如果您需要有向图,请将模式更改为 "directed"