如何计算R中网络图中所有顶点的第二度?

时间:2014-04-01 12:37:08

标签: r network-programming social-networking

网络中的一级连接数(随机图)很容易通过以下函数计算:

g <- erdos.renyi.game(10, 1/10, directed = TRUE)
d1 <- degree(g, mode="out")

但是,我可以用哪个函数计算每个节点的二度连接?

1 个答案:

答案 0 :(得分:2)

我建议使用neigborhood替代degree函数。这允许您指定邻域的任何顺序。

d1 <- sapply(neighborhood(g, 1, mode="out"), length)-1
d2 <- sapply(neighborhood(g, 2, mode="out"), length)-1

如果您有包含循环的图表,则应检查是否仍然提供了所需的结果。

修改:感谢@Ryan指出neighborhood.size实际上是比neighborhood更好的答案。

d1 <- neighborhood.size(g, 1, mode="out")-1
d2 <- neighborhood.size(g, 2, mode="out")-1

编辑:感谢@Ryan的邻居功能!我使用它并且它有效,但是为了获得你需要从d2中减去d1的二度连接的数量,那么你只有第二度连接:

d1 <- degree(g, mode="out")
d2 <- neighborhood.size(g, 2, mode="out")-d1-1