gpt4 book ai didi

R igraph 从顶点列表中的 igraph 对象生成 “subgraph”,如果原始节点中存在连接节点,则推断所选顶点之间的边

转载 作者:行者123 更新时间:2023-12-01 22:54:57 27 4
gpt4 key购买 nike

我正在使用 R 中的 igraph。我知道我们可以用选定的顶点创建一个子图,但如果这些节点没有直接连接,那么新子图中将不会有边。如果有其他节点(不是顶点列表的一部分)间接连接这两个节点,有没有办法制作一个在两个节点之间创建边的子图?例如,如果我有一个具有以下边的图形:E-FF-G我的顶点列表包含 E 和 G,我如何创建一个新的子图来创建该边 E-G?谢谢!!!

最佳答案

找到相距两步的邻居的一种方法是将邻接矩阵与其自身相乘(例如,参见评论 here )。

首先创建问题中描述的图形:

library(igraph)
g <- graph_from_literal(E--F, F--G)

然后取邻接矩阵 (m) 并将其与自身相乘。

m <- get.adjacency(g, sparse = F)
m2 <- m %*% m

从生成的邻接矩阵构建新图并删除度数为 0 的所有顶点(没有二度邻居):

g2 <- graph_from_adjacency_matrix(m2, diag = F, mode = "undirected") 
induced_subgraph(g2, degree(g2) > 0)
#> IGRAPH 089bf67 UN-- 2 1 --
#> + attr: name (v/c)
#> + edge from 089bf67 (vertex names):
#> [1] E--G

创建于 2022-08-26 reprex v2.0.2

关于R igraph 从顶点列表中的 igraph 对象生成 “subgraph”,如果原始节点中存在连接节点,则推断所选顶点之间的边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73493781/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com