返回R中的get.shortest.paths()的各个顶点

时间:2014-02-09 21:33:18

标签: r networking graph igraph

我使用igraph包在R中创建了一个随机(Erdos-Renyi)图,其中p = 0.2和10个节点,如下所示:

library(igraph)
graph <- erdos.renyi.game(10, 0.2, type = c("gnp", "gnm"), directed = FALSE,
    loops = FALSE)

我发现图的中心节点和叶节点如下:

centralNode <- which(degree(graph) %in% c(max(degree(graph))))
leafNodes <- which(degree(graph) %in% c(1))

我找到了从中心节点到第一个叶子节点的最短路径,如下所示:

sp <- get.shortest.paths(graph, centralNode, leafNodes[1])

可以得到这样的结果(如果1是centralNode而4是leafNodes[1]

[[1]]
[1] 1  2  9  4

我希望能够访问从centralNodeleafNodes[1]的最短路径中的每个顶点。

我尝试这样做,但不断收到这些错误:

sp$2
    Error: unexpected numeric constant in "sp$2"
sp$[[1]][2]
    Error: unexpected '[[' in "sp$[["
sp$1[2]
    Error: unexpected numeric constant in "sp$1"
sp$[1][2]
    Error: unexpected '[' in "sp$["

我不确定如何单独返回每个顶点,或者只选择其中一个顶点。我希望这是有道理的。

非常感谢任何帮助。感谢

1 个答案:

答案 0 :(得分:1)

sp只是一个标准列表。因此sp[[1]]等可以获得一个向量。

但是,对图形对象进行子集化可能更有意义。像这样:

V(graph)[sp[[1]]]