小编Cri*_*bal的帖子

在 R 中总结大图中邻居属性的快速方法

我有一个大型 igraph 对象,几乎有 1M 个节点和 150 万条边。经过一段时间的研究后,我找不到一个对节点的邻居属性求和的过程,在这种情况下,它是一个二进制的。目前,我找到的最佳解决方案如下:

\n\n
V(g)$sum = sapply( ego(g,1,V(g),mode = \'all\',mindist = 1), function(v) sum(V(G)[v]$attr) )\n
Run Code Online (Sandbox Code Playgroud)\n\n

然而,12 小时后,它仍然嘎吱作响。

\n\n

有什么建议么?

\n\n

更新 1:让我们考虑下图

\n\n
library(igraph)\nG <- graph.formula(1-+2,1-+3,2-+4,2-+5,3-+6,5-+7,7-+8,8-+9,9+-7, 9-+10,\n               6-+9,1-+5,3-+9,10-+11,11-+12,11-+5,12-+4,4-+10,10-+4,11-+10)\nV(G)$attr = c(1,1,0,0,1,0,1,0,1,0,1,0)\nplot(G, vertex.label.color = "white",  edge.width=E(G)$weight, layout = layout.circle(G))\n
Run Code Online (Sandbox Code Playgroud)\n\n

在此输入图像描述

\n\n

而期望的结果应该是这样的......

\n\n
 sapply( ego(G,1,V(G),mode = \'all\',mindist = 1), function(v) sum(V(G)[v]$attr) )\n [1] 2 2 2 1 4 1 2 2 1 2 1 1\n
Run Code Online (Sandbox Code Playgroud)\n\n

@Tam\xc3\xa1s,我尝试在不使用循环的情况下访问邻居函数,但我得到的不是上面描述的结果......

\n\n
sapply(neighbors(G,V(G)),function (v) sum(V(G)[v]$attr))\n2 3 5 \n1 0 1 …
Run Code Online (Sandbox Code Playgroud)

r large-data igraph sna

5
推荐指数
1
解决办法
1273
查看次数

标签 统计

igraph ×1

large-data ×1

r ×1

sna ×1