r - 获取图 igraph 中父节点的度数

标签 r igraph

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

这是一个例子,

enter image description here

在此示例中,节点 9 的度数为 9,来自节点 19 的连接数为 5 个,来自节点 3 的连接数为 4 个;对于 Node-5 来说,它是 3,因为它的父节点 Node-13 有 3 个连接。

我想计算从一个节点(例如node-19)开始的度数,并根据节点2和距离node-19 3步的父节点计算度数。

我正在考虑使用函数 ego 但它也在步骤 2 和 3 中为我提供了 parent 的 parent 。

有什么帮助吗?

最佳答案

这是来自 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

level(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

关于r - 获取图 igraph 中父节点的度数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36089114/

相关文章:

r - 如何删除数据框中的子项以在 R 中绘制网络?

R:使用带插入符号的 Ranger、tuneGrid 参数

r - 根据变量获取列的值和位置

r - 如何在R中编写map reduce?

在 C/C++ 中创建 "igraph"中的加权无向图

python - 从单个 jupyter/ipython 单元绘制多个 python-igraph 图

python - 使用 python 从 .csv 文件读取边缘到 igraph

r - 如何从R中的字符串列表中删除元素

r - 基于 2 列中的值对表进行重复数据删除 + 模糊匹配

从列表中引用 igraph 的布局函数