R:删除节点后计算相邻顶点
R: Calculating adjacent vertex after deletion of nodes
我是 R 的新手,正在尝试计算图的相邻顶点,这是通过从原始图中删除某些节点获得的。
但是,结果的输出与图表的绘图不匹配。
例如:
library(igraph)
g <- make_ring(8)
g <- add_edges(g, c(1,2, 2,7, 3,6, 4,5, 8,2, 6,2))
V(g)$label <- 1:8
plot(g)
h <- delete.vertices(g, c(1,2))
plot(h)
如果我计算:
adjacent_vertices(h,6)= 5
但是,我希望输出为 3,5,7,如图所示。问题在于它不知道我正在尝试查找标记为 6 的节点的相邻顶点。
有人可以帮忙吗。谢谢。
这里的问题是,当您删除顶点时,剩余顶点的索引会向下移动到 [0,6]:
> V(h)
+ 6/6 vertices:
[1] 1 2 3 4 5 6
要找到邻居,使用原始顶点名称,您可以简单地将值偏移删除的顶点数,例如:
> neighbors(h, 6 - offset) + offset
+ 3/6 vertices:
[1] 3 5 7
但是,更好的方法是引用顶点 labels 而不是使用索引:
> V(g)$label
[1] 1 2 3 4 5 6 7 8
> V(h)$label
[1] 3 4 5 6 7 8
> V(h)[V(h)$label == 6]
+ 1/6 vertex:
[1] 4
要获取您感兴趣的顶点的邻居,您可以将代码修改为:
> vertex_of_interest <- V(h)[V(h)$label == 6]
> neighbors(h, vertex_of_interest)$label
[1] 3 5 7
我是 R 的新手,正在尝试计算图的相邻顶点,这是通过从原始图中删除某些节点获得的。
但是,结果的输出与图表的绘图不匹配。
例如:
library(igraph)
g <- make_ring(8)
g <- add_edges(g, c(1,2, 2,7, 3,6, 4,5, 8,2, 6,2))
V(g)$label <- 1:8
plot(g)
h <- delete.vertices(g, c(1,2))
plot(h)
如果我计算:
adjacent_vertices(h,6)= 5
但是,我希望输出为 3,5,7,如图所示。问题在于它不知道我正在尝试查找标记为 6 的节点的相邻顶点。
有人可以帮忙吗。谢谢。
这里的问题是,当您删除顶点时,剩余顶点的索引会向下移动到 [0,6]:
> V(h)
+ 6/6 vertices:
[1] 1 2 3 4 5 6
要找到邻居,使用原始顶点名称,您可以简单地将值偏移删除的顶点数,例如:
> neighbors(h, 6 - offset) + offset
+ 3/6 vertices:
[1] 3 5 7
但是,更好的方法是引用顶点 labels 而不是使用索引:
> V(g)$label
[1] 1 2 3 4 5 6 7 8
> V(h)$label
[1] 3 4 5 6 7 8
> V(h)[V(h)$label == 6]
+ 1/6 vertex:
[1] 4
要获取您感兴趣的顶点的邻居,您可以将代码修改为:
> vertex_of_interest <- V(h)[V(h)$label == 6]
> neighbors(h, vertex_of_interest)$label
[1] 3 5 7