将边缘列表从 igraph 写入 R 中的文件;如何写顶点名称而不是顶点 ID
writing edgelist from igraph to file in R; how to write vertex names not vertex ids
我使用 FlashGraphs 绘制了一个图,并从中提取了一个子图,这为我提供了一个顶点名称分布在整个顶点范围内的 igraph。我尝试使用 write.graph(sub.fg,"lc_edgelist.txt", "edgelist")
编写边缘列表,但是当我这样做时,我得到一个看起来像这样的文件,
0 251
0 268
0 840
...
文件应如下所示
237 368616
237 374864
237 1197066
...
这似乎只是分配了顶点 ID 而不是使用名称,因此为了检查,我从主图中导出了一个顶点列表,我只是使用以下命令获取了具有该 ID 的所有顶点。 lcc.v <- which(cc == lcc.id)
我只是使用我也从主图中派生的顶点列表来转换这些顶点,但是通过检查该参考,368616 不是第 251 个顶点,而是第 697 个。如果可以写根据主图中分配的顶点名称的图形,这将是最好的解决方案,但任何解释为什么顶点编号不排列或排列它们的方法也会有所帮助。
使用write.graph(sub.fg, "lc_edgelist.txt", "ncol")
。 NCOL 格式使用来自 $name
顶点属性的符号顶点名称而不是节点 ID。您有责任在保存前确保名称的唯一性。
我使用 FlashGraphs 绘制了一个图,并从中提取了一个子图,这为我提供了一个顶点名称分布在整个顶点范围内的 igraph。我尝试使用 write.graph(sub.fg,"lc_edgelist.txt", "edgelist")
编写边缘列表,但是当我这样做时,我得到一个看起来像这样的文件,
0 251
0 268
0 840
...
文件应如下所示
237 368616
237 374864
237 1197066
...
这似乎只是分配了顶点 ID 而不是使用名称,因此为了检查,我从主图中导出了一个顶点列表,我只是使用以下命令获取了具有该 ID 的所有顶点。 lcc.v <- which(cc == lcc.id)
我只是使用我也从主图中派生的顶点列表来转换这些顶点,但是通过检查该参考,368616 不是第 251 个顶点,而是第 697 个。如果可以写根据主图中分配的顶点名称的图形,这将是最好的解决方案,但任何解释为什么顶点编号不排列或排列它们的方法也会有所帮助。
使用write.graph(sub.fg, "lc_edgelist.txt", "ncol")
。 NCOL 格式使用来自 $name
顶点属性的符号顶点名称而不是节点 ID。您有责任在保存前确保名称的唯一性。