如何从不等于“x”的所有顶点删除传出边

时间:2013-10-15 05:19:53

标签: r igraph

我有一个有115个节点和1098个边的有向图'g'。它是一个超链接图(即节点是网站,边表示存在超链接)。

我想从所有不属于特定感兴趣节点的顶点(id = 7)中删除所有出站边缘。我正在尝试创建一个图表,仅代表特定网站的外链(即链接到哪些网站)。

我尝试过使用delete.edges函数的各种尝试,但我对如何实现这一点感到非常困惑。

我也尝试过:

g[1:6,] <- FALSE

接下来是:

g[8:1098,] <- FALSE

但这也不起作用。

1 个答案:

答案 0 :(得分:1)

我不确定为什么你的代码不起作用,拥有一个可重复的数据示例会很棒。我怀疑你的图表有顶点名称,你正在混合顶点名称和数字顶点id。无论如何,最简单的方法可能是:

library(igraph)
links <- cbind(from=c( 2, 3, 7, 7, 7),
                 to=c(10,11,12,13,14))
g <- graph.edgelist(links)

str(g)
# IGRAPH D--- 14 5 -- 
# + edges:
# [1] 2->10 3->11 7->12 7->13 7->14

g[-7,] <- FALSE

str(g)
# IGRAPH D--- 14 3 -- 
# + edges:
# [1] 7->12 7->13 7->14