假设我有这个示例图,我想找到连接到顶点'a'
的边 d <- data.frame(p1=c('a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'd'),
p2=c('b', 'c', 'd', 'c', 'd', 'e', 'd', 'e', 'e'))
library(igraph)
g <- graph.data.frame(d, directed=FALSE)
print(g, e=TRUE, v=TRUE)
我可以轻松找到一个顶点:
V(g)[V(g)$name == 'a' ]
但我需要引用连接到顶点'a'的所有边。
答案 0 :(得分:27)
请参阅igraph iterators上的文档;特别是from()和to()函数。
在您的示例中,“a”是V(g)[0],因此要查找连接到“a”的所有边:
E(g) [ from(0) ]
结果:
[0] b -- a
[1] c -- a
[2] d -- a
答案 1 :(得分:4)
如果您不知道顶点的索引,可以在使用from()函数之前使用match()找到它。
idx <- match("a", V(g)$name)
E(g) [ from(idx) ]
答案 2 :(得分:3)
找到一个更简单的版本,结合上面的两个努力也可能有用。
E(g)[from(V(g)["name"])]
答案 3 :(得分:1)
我使用此函数获取所有节点的边数:
sapply(V(g)$name, function(x) length(E(g)[from(V(g)[x])]))