r - 我怎样才能让 igraph 停止与大图崩溃?

标签 r igraph

我正在使用 igraph 中的一个相当大的网络(大约 200,000 个边)。我正在计算接近中心性(调和中心性)的一个版本,如下所示:

#Create igraph network object:
g <- graph.edgelist(as.matrix(d), directed = FALSE)
g <- simplify(g)

#Normalized harmonic centrality:
h <- 1/(shortest.paths(g))
h[!is.finite(h)] <- 0
h <- (colSums(h)/gorder(h))

但是,这会使 R 崩溃。事实上,应用于整个网络的任何网络测量都会使 R 崩溃。我可以毫无问题地处理最大的连接组件(大约 7,000 个边),但不能处理整个网络。我正在使用调和中心性(而不是 igraph 的内置中心性度量),因为它更适合断开连接的图形。

我正在尝试找出解决方法。一种选择可能是将网络拆分为其组成部分,然后运行我的谐波中心性度量。但是在尝试之后:

decompose.graph(g)

R 再次崩溃。我通常在 R Studio 中工作,但我也在普通的非 GUI R 中尝试过这个;但结果相同。

有没有人对我如何解决这个问题有任何建议?

最佳答案

大图占用内存大。因此,首先你的操作系统必须是 64 位的,如果你的内存不足,也许你需要使用虚拟内存并增加交换文件的大小。

关于r - 我怎样才能让 igraph 停止与大图崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42278785/

相关文章:

r - 数据帧过滤

r - 处理负值时如何修复R中的累积和

r - 存储sample()函数后剩余的数字

r - R igraph中添加节点和删除指定边

Python igraph : Count distinct edges in a weighted graph

R:如何跨区域可视化给定列中的前 5 个值

r - 在 Rstudio 中通过 Rprofile.site 加载 dplyr

Python-IGraph 属性

r - R : efficiently count number of edges between multiple sets of vertices 中的 igraph

r - 使用 igraph 和 R 快速找到长度为 N 的所有路径