将列表转换为igraph对象以进行打印的最优雅的方法
我不熟悉igraph,它似乎是一个非常强大(因此也很复杂)的软件包 我尝试将以下列表转换为igraph对象将列表转换为igraph对象以进行打印的最优雅的方法,r,igraph,R,Igraph,我不熟悉igraph,它似乎是一个非常强大(因此也很复杂)的软件包 我尝试将以下列表转换为igraph对象 graph <- list(s = c("a", "b"), a = c("s", "b", "c", "d"), b = c("s", "a", "c", "d"), c = c("a", "b", "d", "e", "f"), d = c("a", "b", "c",
graph <- list(s = c("a", "b"),
a = c("s", "b", "c", "d"),
b = c("s", "a", "c", "d"),
c = c("a", "b", "d", "e", "f"),
d = c("a", "b", "c", "e", "f"),
e = c("c", "d", "f", "z"),
f = c("c", "d", "e", "z"),
z = c("e", "f"))
weights <- list(s = c(3, 5),
a = c(3, 1, 10, 11),
b = c(5, 3, 2, 3),
c = c(10, 2, 3, 7, 12),
d = c(15, 7, 2, 11, 2),
e = c(7, 11, 3, 2),
f = c(12, 2, 3, 2),
z = c(2, 2))
graph创建一个边缘列表,然后从中创建一个图形。分配权重并绘制它
set.seed(123)
e <- as.matrix(stack(graph))
g <- graph_from_edgelist(e)
E(g)$weight <- stack(weights)[[1]]
plot(g, edge.label = E(g)$weight)
set.seed(123)
在这里使用stack
确实非常优雅-谢谢