我在R中有一个非常大的igraph(称为g)。
我只对一个节点(NodeA)以及任何直接连接到NodeA的节点感兴趣。我想最终得到一个非常简单的图表,如下图所示。
我已经尝试了子图(g," nodeA")但我最终只能使用NodeA。
我认为我需要将图g的边缘子集化为连接到nodeA的边缘,然后使用subgraph.edges()。我无法弄清楚如何基于它们连接到的节点来对边缘进行子集化...
答案 0 :(得分:0)
尝试使用neighbors()
# Example graph
g1 <- graph_from_literal(1:2:3---3:4:5)
# Let's take a look at it
plot(g1)
# Say we are interested in the subgraph consisting of vertex 1 and all
# other vertices it is connected to
g2 <- induced_subgraph(g1, c(1, neighbors(g1,1)))
plot(g2)
答案 1 :(得分:0)
?make_ego_graph
:, order=1
应该这样做
g <- make_graph(c(1, 2, 2, 3, 3, 4, 5, 6), directed = FALSE)
V(g)$name <- letters[1:6]
g
#IGRAPH UN-- 6 4 --
#+ attr: name (v/c)
#+ edges from 657f0a0 (vertex names):
#[1] a--b b--c c--d e--f
make_ego_graph(g, order=1, nodes=2)
#[[1]]
#IGRAPH UN-- 3 2 --
#+ attr: name (v/c)
#+ edges from 69681da (vertex names):
#[1] a--b b--c