网络(随机图)中一级连接的数量很容易用函数计算:
g <- erdos.renyi.game(10, 1/10, directed = TRUE)
d1 <- degree(g, mode="out")
但是,用哪个函数可以统计每个节点的二度连接呢?
最佳答案
我建议使用 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 的 neighborhood.size 函数!我用过它并且它有效,但是为了获得二级连接的数量,你需要从 d2 中减去 d1,那么你只有二级连接:
d1 <- degree(g, mode="out")
d2 <- neighborhood.size(g, 2, mode="out")-d1-1
关于r - 如何计算 R 网络图中所有顶点的二次度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22786098/