我在R中使用igraph来计算图形测量,我的图形在不连接图形的PIN中生成并且是断开连接图形。 连通图的紧密度方法是好的,正确计算,而对于断开连接图则不好!
library(igraph)
# Create of Graph Matrix for Test Closeness Centrality
g <- read.table(text="A B
1 2
2 4
3 4
3 5", header=TRUE)
gadj <- get.adjacency(graph.edgelist(as.matrix(g), directed=FALSE))
igObject <- graph.adjacency(gadj) # convert adjacency matrix to igraph object
gCloseness <- closeness(igObject,weights = NULL) # Assign Closeness to Variable for print
输出:
[1] 0.1000000 0.1428571 0.1428571 0.1666667 0.1000000
我的断开连接图:
library(igraph)
# Create of Graph Matrix for Test Closeness Centrality
g <- read.table(text="A B
1 2
3 4
3 5", header=TRUE)
gadj <- get.adjacency(graph.edgelist(as.matrix(g), directed=FALSE))
igObject <- graph.adjacency(gadj) # convert adjacency matrix to igraph object
gCloseness <- closeness(igObject,weights = NULL) # Assign Closeness to Variable for print
输出:
[1] 0.06250000 0.06250000 0.08333333 0.07692308 0.07692308
这个输出是对的吗?如果正确如何计算?
答案 0 :(得分:2)
请阅读.htaccess
功能的documentation;它清楚地说明igraph如何处理断开的图形:
如果顶点
closeness
和v
之间没有(定向)路径,则在公式中使用顶点总数而不是路径长度。
然后计算似乎对我来说是正确的,虽然我会说亲密中心本身对于断开连接的图形没有很好的定义,而且这里使用的igraph更像是一个黑客(虽然是一个非常标准的黑客)而不是严格处理问题。我不会在断开连接的图上使用贴近度中心性。