【发布时间】:2021-02-15 07:12:20
【问题描述】:
在问题中,我有四个不同的网络,我从 4 个不同的 csv 文件加载它们。当我使用 centiserve 库计算 centroid 时,每个都失败了。另一方面,如果我生成一个随机 ER 网络,质心计算就会起作用。
我查看了质心函数,最终我发现它使用 igraph 来检查网络是否连接这个函数is.connected(g, mode="strong")
According to wikipedia 如果所有节点都可以从网络中的随机节点到达,则图是强连接的。为此,我使用 igraph 的 decompose() 函数计算了我的网络的组件,并且所有网络都有一个连接组件:length(decompose(net)) 始终等于 1。但是,centroid(net) 始终返回错误。
最终,问题是:这个函数在验证图形是否合适时到底在寻找什么?为什么我的网络只有一个连接组件,但 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
【问题讨论】:
-
你能提供一个最小的可重现的例子吗?
-
@Christoph 正在处理它。
-
@Christoph,给你。不工作的代码现在与网络一起可用。
-
注意
decompose默认使用弱组件。is.connected正在检查强组件。 -
@Szabolcs 实际上我还没有尝试过。而且,是的,我现在可以说区别很明显。在问这个问题之前它不是!
标签: r igraph network-analysis