[英]r igraph most connected nodes
在这种情况下,您可以通过对连接数进行计数(从&到相同,因为在任何一个向量中出现一个节点表示1个连接),就可以从data.frame计算它:
sort(table(c(paths$from, paths$to)), decreasing = TRUE)
结果:
30 10 20 50 60
4 2 2 1 1
说明:该代码正在创建一个所有连接的向量( c(paths$from, paths$to)
),然后对频率( table
)进行计数,然后sort
结果进行sort
以获得从连接最多到连接最少的有序列表( decreasing=TRUE
)。
在这里找到连接数,您只需要计算data.frame
中每个数字的data.frame
,例如10出现两次,连接数为2。您可以使用rle
,它返回一个具有两个属性的对象:
result <- rle(sort(c(paths[,1], paths[,2])))
> result
Run Length Encoding
lengths: int [1:5] 2 2 4 1 1
values : num [1:5] 10 20 30 50 60
您可以通过result$values
获得计数,也可以将结果放入data.frame
:
> data.frame(dot=result$lengths, count=result$values)
dot count
1 2 10
2 2 20
3 4 30
4 1 50
5 1 60
尝试这个
lengths(as_adj_list(g))
# 10 20 30 50 60
# 2 2 4 1 1
或者使用Matrix
的colSums
函数尝试此操作:
library(Matrix)
colSums(g[])
# 10 20 30 50 60
# 2 2 4 1 1
which.max(colSums(g[]))
# 30
# 3
max(colSums(g[]))
# [1] 4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.