如何识别多个独立的子图,并将其对应的子图分配给R中的每个节点? [英] How to identify multiple independent subgraphs and assign its corresponding subgraph to each node in R?

查看:0
本文介绍了如何识别多个独立的子图,并将其对应的子图分配给R中的每个节点?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在R中的网络数据有问题。假设我有一个如下所示的图表:

library(igraph)
a1=data.frame(A=c(1,1,2,2,3,7,9,10),B=c(2,3,4,5,6,8,8,11))
a2=graph_from_data_frame(a1, directed = F)
plot(a2)

我看到有三个独立的子图,节点1到6属于子图1,节点7到9属于子图2,节点10和11属于子图3。

a3=data.frame(node=c(1:11),sub=c(1,1,1,1,1,1,2,2,2,3,3))

我想输出像A3这样的表,在R中是否有直接代码来完成此赋值?

推荐答案

这是一个解决方案。

sub <- clusters(a2)$membership
a3 <- data.frame(node = names(sub), sub)
a3 <- a3[order(as.integer(a3$node)), ]
a3

替代方案:

cmp <- components(a2)
data.frame(node = unlist(groups(cmp)), 
           sub = sort(as.integer(cmp$membership)))

这篇关于如何识别多个独立的子图,并将其对应的子图分配给R中的每个节点?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆