我有一个用邻接矩阵表示的简单网络的例子。
我正在尝试查找每个节点/顶点(人)的程度
根据定义,节点的度数是它与其他节点的连接数。按照惯例,在有向(即非对称)矩阵中,平局的发送方是行,平局的目标是列。
邻接矩阵(对角线为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
我做错什么了吗?
答案 0 :(得分:1)
通过使用rowSums
或colSums
,您将只算出一种连接。您想要的是两者的并集,可以如下找到:
degree_centralty <- function(x) rowSums(x + t(x) != 0) - 1
degree_centralty(A)
# [1] 2 2 3 1
现在x + t(x)
是一个对称矩阵。