r - 从具有 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
难道我做错了什么?
解决方案
通过使用rowSums
orcolSums
你只会计算一种连接。你想要的是两者的结合,可以找到如下:
degree_centralty <- function(x) rowSums(x + t(x) != 0) - 1
degree_centralty(A)
# [1] 2 2 3 1
其中 nowx + t(x)
是一个对称矩阵。
推荐阅读
- .htaccess - .htaccess 中的 CodeIgniter RewriteRule 和 ErrorDocument
- json - 为什么我无法从字典中检测到 None 值
- c++ - 对齐 SSBO 的内存,即包含数组的结构数组?
- typescript - 如何用 jest 模拟 typeorm 合并功能
- c - 返回 char 时内存泄漏 *
- motoko - 在 Motoko 中创建新应用程序时出错
- php - 用 class_alias 覆盖类
- tableau-api - 如何显示一个允许用户在画面中下载结果的 excel 按钮
- arrays - 关于我的代码使用函数指针搜索元素
- ansible - 如何在 Ansible 中使用 host_vars?