网络中的一级连接数(随机图)很容易通过以下函数计算:
g <- erdos.renyi.game(10, 1/10, directed = TRUE)
d1 <- degree(g, mode="out")
但是,我可以用哪个函数计算每个节点的二度连接?
答案 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