如何使用R将大igraph分配到一个节点及其连接的节点?

时间:2018-04-13 05:15:29

标签: r igraph

我在R中有一个非常大的igraph(称为g)。

我只对一个节点(NodeA)以及任何直接连接到NodeA的节点感兴趣。我想最终得到一个非常简单的图表,如下图所示。

我已经尝试了子图(g," nodeA")但我最终只能使用NodeA。

我认为我需要将图g的边缘子集化为连接到nodeA的边缘,然后使用subgraph.edges()。我无法弄清楚如何基于它们连接到的节点来对边缘进行子集化...

NodeA and two directly connected nodes

2 个答案:

答案 0 :(得分:0)

尝试使用neighbors()

# Example graph
g1 <- graph_from_literal(1:2:3---3:4:5)

# Let's take a look at it
plot(g1)

enter image description here

# 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)

enter image description here

答案 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