igraph将顶点重新排序为排序顺序

时间:2017-09-18 12:55:00

标签: r graph igraph

目前,我从边缘列表中读取图表如下:

>> require(igraph)  # i have igraph 1.1.0
>> g1 <- read_graph(graphname, format='ncol')
>> V(g1)
 [1] 1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 40 42 44 46 47 48 49 50 52 56 57 58
 [50] 59 60 61 62 63 64 65 67 68 41 69 43 53 37 39 45 51 54 55 66 70

正如你所看到的,顶点排序是完全错误的,尽管顶点具有令人难以置信的,令人难以置信的基本命名约定(它们都只是整数)。这是非常有问题的,因为igraph中get.adjacency函数的排序(返回70x70矩阵)取决于V(g1)中顶点的排序,所以当我尝试与某些{{1}进行比较时使用相同的顶点集合,它们同样处于一种荒谬的无意义排序(但与此处不同)导致图形样本中的不一致图形顶点,尽管它们都具有相同的顶点标签。有没有办法纠正这个问题,这样我就可以轻松地重新排序图形中的顶点,以便生成的邻接矩阵具有合理的排序?

编辑:注意我已经尝试使用g2函数置换顶点:

permute.vertices

当我在以下方式阅读我的图表时,我设法让它工作了:

>> gtest <- permute.vertices(g1, as.numeric(V(g1)))  # permute vertex ids by the ordering returned by V()
>> V(gtest)  # too bad it doesn't work...
 [1] 1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 40 42 44 46 47 48 49 50 52 56 57 58
 [50] 59 60 61 62 63 64 65 67 68 41 69 43 53 37 39 45 51 54 55 66 70

但如果这真的是唯一的方式,这似乎有点荒谬。有人有任何其他建议吗?

谢谢!

0 个答案:

没有答案