如何使用 igraph 和 R 找到顶点的边?

发布于 2024-09-11 01:57:44 字数 381 浏览 7 评论 0原文

假设我有这个示例图,我想找到连接到顶点“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”的所有边。

Say I have this example graph, i want to find the edges connected to vertex '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)

I can easily find a vertex:

 V(g)[V(g)$name == 'a' ]

But i need to reference all the edges connected to the vertex 'a'.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

奶气 2024-09-18 01:57:44

请参阅有关 igraph 迭代器 的文档;特别是 from() 和 to() 函数。

在您的示例中,“a”是 V(g)[0],因此要查找连接到“a”的所有边:

E(g) [ from(0) ]

结果:

[0] b -- a
[1] c -- a
[2] d -- a

See the documentation on igraph iterators; in particular the from() and to() functions.

In your example, "a" is V(g)[0], so to find all edges connected to "a":

E(g) [ from(0) ]

Result:

[0] b -- a
[1] c -- a
[2] d -- a
爺獨霸怡葒院 2024-09-18 01:57:44

如果您不知道顶点的索引,可以在使用 from() 函数之前使用 match() 找到它。

idx <- match("a", V(g)$name)
E(g) [ from(idx) ]

If you do not know the index of the vertex, you can find it using match() before using the from() function.

idx <- match("a", V(g)$name)
E(g) [ from(idx) ]
等风也等你 2024-09-18 01:57:44

找到了一个更简单的版本,结合了上述两项工作,可能也很有用。

E(g)[from(V(g)["name"])]

Found a simpler version combining the two efforts above that may be useful too.

E(g)[from(V(g)["name"])]
廻憶裏菂餘溫 2024-09-18 01:57:44

我使用此函数来获取所有节点的边数:

sapply(V(g)$name, function(x) length(E(g)[from(V(g)[x])]))

I use this function for getting number of edges for all nodes:

sapply(V(g)$name, function(x) length(E(g)[from(V(g)[x])]))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文