在R中定义和分类单独的网络
我有一个无法优化的问题,我确信igraph或tidy Graph必须已经拥有这个功能,或者必须有更好的方法来实现这一点。我用R和igraph来做这件事,但可能tidygraph也会做这件事 问题:如何将超过200万条边(节点1-链接到节点2)的列表定义为各自独立的网络,然后将网络定义为其加权最高的节点类别 数据: 边缘: 从…起 到 1. 2. 3. 4. 5. 6. 7. 6. 8. 6.在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
这里是一个仅使用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小时的流程更改为需要几秒钟的流程!我很高兴能帮你节省时间。