首页 > 解决方案 > 从具有 R 的非对称(有向)邻接矩阵中找到所有节点的度数(中心性)

问题描述

网络

我有一个表示为邻接矩阵的简单网络示例。

我正在尝试查找每个节点/顶点(人)的度数

正如定义的那样,节点的度数是它与其他节点的连接数。按照惯例,在有向(即非对称)矩阵中,平局的发送者是行,平局的目标是列。

邻接矩阵(对角线上为 1):

matrix(c(1,0,1,0,1,1,1,0,1,1,1,1,0,0,1,1), ncol = 4)

结果应该是:

鲍勃:2 卡罗尔:2 泰德:3 爱丽丝:1

我试图通过编写一个函数来解决这个问题,但它没有给出正确的结果(Carol = 1,而不是 2)

degree_centralty <- function(x) rowSums(x != 0)-1

难道我做错了什么?

标签: rigraphgraph-theory

解决方案


通过使用rowSumsorcolSums你只会计算一种连接。你想要的是两者的结合,可以找到如下:

degree_centralty <- function(x) rowSums(x + t(x) != 0) - 1
degree_centralty(A)
# [1] 2 2 3 1

其中 nowx + t(x)是一个对称矩阵。


推荐阅读