我正在使用igraph中相当大的网络(大约200,000个边缘)。我正在计算一个紧密度中心性(谐波中心性)的版本,如下所示:
sapSet = mbo.getThisMboSet()
sapCount = sapSet.count()
saplist = []
if sapCount > 1:
for i in range(sapCount):`enter code here`
defaultCheck = sapSet.getMbo(i)
saplist.append(defaultCheck.getInt("HNADEFACC"))
defCount = saplist.count(1)
if defCount > 1:
errorgroup = " Please Note: you are allowed"
errorkey = " only One Default Account"
if defCount < 1:
errorgroup = " Please enter "
errorkey = " at leat One Default Account"
else:
mbo.setValue("HNADEFACC",1,MboConstants.NOACCESSCHECK)
然而,这会导致R崩溃。实际上,应用于整个网络的任何网络测量都会崩溃R.我可以使用最大的连接组件(大约7,000个边缘)而不会出现问题,但不能与整个网络一起使用。我使用谐波中心性(而不是igraph的内置中心度量),因为它更适合于断开连接的图形。
我正试图找出解决方法。一种选择是将网络分成其组成部分,然后运行我的谐波中心度量。但在尝试之后:
#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 Studio工作,但我也在香草,非GUI R中尝试过这个;但结果相同。
有没有人对如何解决这个问题有任何建议?
答案 0 :(得分:0)
大图占据了大量内存。因此,首先你的操作系统必须是64位,如果你的内存很低,你可能需要使用虚拟内存并增加交换文件大小。