Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 查找只有成对值的路径_R_Graph_Path_Grouping - Fatal编程技术网

R 查找只有成对值的路径

R 查找只有成对值的路径,r,graph,path,grouping,R,Graph,Path,Grouping,我有代表路径的成对值,我希望能够将这些值分组到路径连接的位置。 例如,我有: x y 1: 1 2 2: 2 3 3: 4 5 4: 12 13 5: 13 14 6: 13 15 7: 13 16 需要将它们组合在一起,以使1-2-3、4-5和12-13-14-15-16分开 理想的输出是这样一个表: [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15]

我有代表路径的成对值,我希望能够将这些值分组到路径连接的位置。 例如,我有:

    x  y
1:  1  2
2:  2  3
3:  4  5
4: 12 13
5: 13 14
6: 13 15
7: 13 16
需要将它们组合在一起,以使1-2-3、4-5和12-13-14-15-16分开

理想的输出是这样一个表:

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
[1,]    1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16
[2,]    1    1    1    2    2    3    4    5    6    7     8     9     9     9     9     9

有没有一种算法可以在R中有效地实现这一点?

多亏了@akrun,使用IGRAPHE软件包,它相对简单:

g <- make_graph(c(1,2, 2,3, 4,5, 12,13, 13,14, 13,15, 13,16), directed = FALSE)
cbind(components(g)$membership, seq(1,16))

得益于@akrun,使用igraph软件包相对简单:

g <- make_graph(c(1,2, 2,3, 4,5, 12,13, 13,14, 13,15, 13,16), directed = FALSE)
cbind(components(g)$membership, seq(1,16))

我想你可以用
igraph
来做这件事,我还没有用过igraph软件包-我会看看,看看你可能有什么提示。谢谢。你能解释一下你想要的输出以及你如何使用这些输出吗?我现在已经把想要的输出放在了问题中。理想情况下,每个分组都会得到一个唯一的数字。谢谢。我想你可以用
igraph
来做这件事。我还没有用过igraph软件包-我会看一看,看看你有什么提示。谢谢。你能解释一下你想要的输出以及你如何使用这些输出吗?我现在已经把想要的输出放在了问题中。理想情况下,每个分组都会得到一个唯一的数字。谢谢。很好,你能自己得到输出。很好,你能自己得到输出。