R 合并总体上共享公共元素但不直接共享的对

R 合并总体上共享公共元素但不直接共享的对,r,R,我有一个数据框,列出了以下数据对: groupA groupB 7 57 7 93 93 203 203 301 301 407 383 567 ... ... 例如,7和93通过203连接到301和407 我想要的输出是这样的: [1] 7 57 93 203 301 407 [2] 383 567 ... 当我开始在R中编写解决方案时,我开始认为应该用递归来解决它(我在这方面很糟糕)。这个问题让我想起了“六度分离”之类的

我有一个数据框,列出了以下数据对:

groupA  groupB
7       57
7       93
93      203
203     301
301     407
383     567
...     ...
例如,7和93通过203连接到301和407

我想要的输出是这样的:

[1] 7 57 93 203 301 407
[2] 383 567
...
当我开始在
R
中编写解决方案时,我开始认为应该用递归来解决它(我在这方面很糟糕)。这个问题让我想起了“六度分离”之类的事情。不管是哪种方式,我认为这会比结果容易得多

我在其他语言中偶然发现了一些解决方案,但我想知道是否有人在R中处理过类似的问题


感谢您。

原则上,您希望在有向图中连接组件。 如果
df1
是带有“连接”的数据帧:

将结果格式化:

tbl1 <- cbind( V(g1)$name, cl1$membership )
split(tbl1[,1], tbl1[,2])

# $`1`
# [1] "7"   "93"  "203" "301" "57"  "407"
# 
# $`2`
# [1] "383" "567"
tbl1
cl1 <- clusters(g1)
tbl1 <- cbind( V(g1)$name, cl1$membership )
split(tbl1[,1], tbl1[,2])

# $`1`
# [1] "7"   "93"  "203" "301" "57"  "407"
# 
# $`2`
# [1] "383" "567"