如何解决“非强连通图”在centiserve质心计算中意味着什么?
在问题中,我有四个不同的网络,分别从4个不同的csv文件加载。当我使用centroid库计算centiserve时,每个失败。另一方面,如果我生成一个随机的ER网络,则质心计算将起作用。
我研究了质心函数,最终发现它使用igraph这个功能is.connected(g,mode="strong")
According to wikipedia如果可以从网络中的随机节点访问所有节点,则图是牢固连接的。为此,我使用igraph的decompose()
函数计算了网络的组成部分,并且所有网络都有一个连接的组成部分:length(decompose(net))
始终等于1。但是centroid(net)
始终为1返回错误。
最终,问题是:该函数在验证图形是否合适时究竟在寻找什么?为什么我的网络只有一个连接的组件,但是igraph的is.connected()
函数返回False?
某些代码:
#load file
finalNet <- read.csv("net.csv",sep=",",header=T)
#get network
net <- graph_from_data_frame(finalNet[,c(1,2)])
#decompose says that there is a single connected component
length(decompose(net))
#while centroid does not work!
centroid(net)
网络可用here
解决方法
好的,我找到了答案。问题在于,如果没有另外指定,函数graph_from_data_frame将创建有向网络。
因此,使我的示例正常工作的解决方案是按非定向方式加载网络:
net <- graph_from_data_frame(finalNet[,c(1,2)],directed=F)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。