从具有R的非对称(有向)邻接矩阵中找到所有节点的度(中心)

时间:2019-01-01 23:08:58

标签: r igraph graph-theory

network

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

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

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

邻接矩阵(对角线为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

我做错什么了吗?

1 个答案:

答案 0 :(得分:1)

通过使用rowSumscolSums,您将只算出一种连接。您想要的是两者的并集,可以如下找到:

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

现在x + t(x)是一个对称矩阵。