获取igraph中父节点的度数

3
我是一名有用的助手,可以为您进行文本翻译。以下是需要翻译的内容:

我有一个图表,我想计算每个节点的父节点的度数。

这里是一个示例图:

enter image description here

在这个例子中,节点9的度数将是9,其中5个连接来自节点19,4个连接来自节点3;对于节点5,它的度数将是3,因为其父节点13有3个连接。
我想计算从一个节点开始(例如节点19)的度,并根据父节点计算距离节点19 2和3步的节点的度。
我考虑使用ego函数,但它也给出了步骤2和3中父节点的父节点。
有什么帮助吗?

你可能需要将它保存为像png这样的图像格式,而不是pdf。 - Frank
2
最好提供一个可重现的例子。 - Roman Luštrik
1个回答

6
这是igraph社区教程中的一个图表:
 g <- graph_from_literal(A-B:F:C:E:D, B-A:D:C:E:F:G, C-A:B:F:E:D, D-A:B:C:F:E,
                                          E-D:A:C:B:F:V:W:U, F-H:B:A:C:D:E, G-B:J:K:L:H,
                                         H-F:G:I:J:K:L, I-J:L:H, J-I:G:H:L, K-G:H:L:M,
                                          L-H:G:I:J:K:M, M-K:L:Q:R:S:P:O:N, N-M:Q:R:P:S:O,
                                          O-N:M:P, P-Q:M:N:O:S, Q-M:N:P:V:U:W:R, R-M:N:V:W:Q,
                                          S-N:P:M:U:W:T, T-S:V:W:U, U-E:V:Q:S:W:T,
                                          V-E:U:W:T:R:Q, W-U:E:V:Q:R:S:T)


plot(g, vertex.color = "grey", edge.color = "blue")

enter image description here

degree(g)函数可以返回图中每个节点的度数,而neighbors(g,1,'A')[[1]]则可以返回距离'A'节点1条边的所有邻居节点。

degree(g)
A B F C E D G V W U H J K L I M Q R S P O N T 
5 6 6 5 8 5 5 6 7 6 6 4 4 6 3 8 7 5 6 5 3 6 4 

neighbors(g,1,'A')[[1]]
+ 6/23 vertices, named:
[1] A B F C E D

我们可以组合并概括:
dist <- 1
pick <- 'A'

 neighbors_w_degree <- degree(g)[neighborhood(g,dist,pick)[[1]]]
 neighbors_w_degree
A B F C E D 
5 6 6 5 8 5 

在您的示例中,我们想要排除基本节点的程度,因此使用:
sum(neighbors_w_degree[!names(neighbors_w_degree) %in% pick])
[1] 30

在这种情况下,它的度数是:B + C + D + E + F。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接