在R中定义和分类单独的网络

在R中定义和分类单独的网络,r,categories,igraph,sna,tidygraph,R,Categories,Igraph,Sna,Tidygraph,我有一个无法优化的问题,我确信igraph或tidy Graph必须已经拥有这个功能,或者必须有更好的方法来实现这一点。我用R和igraph来做这件事,但可能tidygraph也会做这件事 问题:如何将超过200万条边(节点1-链接到节点2)的列表定义为各自独立的网络,然后将网络定义为其加权最高的节点类别 数据: 边缘: 从…起 到 1. 2. 3. 4. 5. 6. 7. 6. 8. 6. 这里是一个仅使用IGRAPHE和base R的解决方案 networkid <- componen

我有一个无法优化的问题,我确信igraph或tidy Graph必须已经拥有这个功能,或者必须有更好的方法来实现这一点。我用R和igraph来做这件事,但可能tidygraph也会做这件事

问题:如何将超过200万条边(节点1-链接到节点2)的列表定义为各自独立的网络,然后将网络定义为其加权最高的节点类别

数据:

边缘:

从…起 到 1. 2. 3. 4. 5. 6. 7. 6. 8. 6.
这里是一个仅使用IGRAPHE和base R的解决方案

networkid <- components(g)$membership
Table <- aggregate(id, list(networkid),  function(x) { max(weight[x]) })
networkcat <-  Table$x[networkid]
Final <- data.frame(id, idcat=cat, networkid, networkcat)

Final
  id            idcat networkid networkcat
1  1 traffic accident         1         50
2  2            abuse         1         50
3  3            abuse         2         50
4  4         speeding         2         50
5  5           murder         3        100
6  6            abuse         3        100
7  7         speeding         3        100
8  8            abuse         3        100

networkid这里是一个仅使用igraph和base R的解决方案

networkid <- components(g)$membership
Table <- aggregate(id, list(networkid),  function(x) { max(weight[x]) })
networkcat <-  Table$x[networkid]
Final <- data.frame(id, idcat=cat, networkid, networkcat)

Final
  id            idcat networkid networkcat
1  1 traffic accident         1         50
2  2            abuse         1         50
3  3            abuse         2         50
4  4         speeding         2         50
5  5           murder         3        100
6  6            abuse         3        100
7  7         speeding         3        100
8  8            abuse         3        100

networkid非常感谢您。这里的关键是components()函数。您已将可能需要4小时的流程更改为需要几秒钟的流程!我很高兴能为你节省时间。非常感谢。这里的关键是components()函数。您已将可能需要4小时的流程更改为需要几秒钟的流程!我很高兴能帮你节省时间。