【发布时间】:2015-08-31 03:06:06
【问题描述】:
我很难想出一个描述我要解决的问题的标题,所以如果你有更好的标题,请发表评论!
解决方案可以是 R、Python 或 SQL(准确地说是 Aster TeraData SQL,尽管任何 SQL 语言的解决方案都非常有助于学习)
问题:给定一个无特定顺序的项目对列表,生成一个输出,将与至少一个链接相关的所有对链接在一起。
这是一个使用 R 的简单示例:
colone = c("a","b","u","e","f","f","j","z")
coltwo = c("b","c","c","a","g","h","h","y")
d <- data.frame(colone, coltwo)
d
colone coltwo
1 a b
2 b c
3 u c
4 e a
5 f g
6 f h
7 j h
8 z y
期望的输出(任何易于阅读的数据结构):
(a,b,c,e,u)
(f,g,h,j)
(y,z)
本质上,输入表示节点和边的图。所需的输出是图中所有已连接对象的列表。
任何帮助或想法将不胜感激!
【问题讨论】:
-
这个问题有点不清楚。我不理解预期的输出。
-
@ZdaR 我已经更新了这个问题,对这个问题进行了更多解释——我意识到它本质上是一个图表问题。
-
这被称为connected-components,它是关系的传递闭包。它是需要迭代方法的问题的标准示例,并且不能在纯 SQL 中建模(因此,这是 PL/SQL 和类似扩展的动机)。
-
@Anony-Mousse 我更新了问题标题以更好地反映我的问题。也感谢 SQL 的更新——很高兴知道!
标签: python sql r graph connected-components