在保持节点 name/id 的同时引入子图
Induce a subgraph while keeping nodes' name/id
假设我有这样的图表:
library(igraph)
gtest <- graph(c(1,2,1,3,2,3,3,4), directed = FALSE)
现在,我想要来自 gtest 的导出子图,节点为 1、3、4。当我 运行 以下命令时,似乎正在生成一个新图,有 3 个节点 1、2 和3.
induced.subgraph(graph = gtest,vids = c(1,3,4), impl = "copy_and_delete")
IGRAPH 17d00a4 U--- 3 2 --
+ edges from 17d00a4: [1] 1--2 2--3
但是我需要保留节点name/id。有解决办法吗?
您可以在 运行 inducded.graph
之前将 name
属性添加到 gtest
,即
gtest <- graph(c(1, 2, 1, 3, 2, 3, 3, 4), directed = FALSE) %>%
set_vertex_attr(name = "name", value = seq_along(V(.)))
然后
> induced.subgraph(graph = gtest, vids = c(1, 3, 4))
IGRAPH 76ee13e UN-- 3 2 --
+ attr: name (v/n)
+ edges from 76ee13e (vertex names):
[1] 1--3 3--4
假设我有这样的图表:
library(igraph)
gtest <- graph(c(1,2,1,3,2,3,3,4), directed = FALSE)
现在,我想要来自 gtest 的导出子图,节点为 1、3、4。当我 运行 以下命令时,似乎正在生成一个新图,有 3 个节点 1、2 和3.
induced.subgraph(graph = gtest,vids = c(1,3,4), impl = "copy_and_delete")
IGRAPH 17d00a4 U--- 3 2 --
+ edges from 17d00a4: [1] 1--2 2--3
但是我需要保留节点name/id。有解决办法吗?
您可以在 运行 inducded.graph
之前将 name
属性添加到 gtest
,即
gtest <- graph(c(1, 2, 1, 3, 2, 3, 3, 4), directed = FALSE) %>%
set_vertex_attr(name = "name", value = seq_along(V(.)))
然后
> induced.subgraph(graph = gtest, vids = c(1, 3, 4))
IGRAPH 76ee13e UN-- 3 2 --
+ attr: name (v/n)
+ edges from 76ee13e (vertex names):
[1] 1--3 3--4