在R中导入igraph中的边列表

see*_*_94 2 r graph edges igraph

我正在尝试将边缘列表导入到R中的igraph图形对象.以下是我试图这样做的方法:

graph <- read.graph(edgeListFile, directed=FALSE)
Run Code Online (Sandbox Code Playgroud)

我在一百万次之前使用过这种方法,但它对这个特定的数据集不起作用:

294834289 476607837
560992068 2352984973
560992068 575083378
229711468 204058748
2432968663 2172432571
2473095109 2601551818    
...
Run Code Online (Sandbox Code Playgroud)

R抛出这个错误:

Error in read.graph.edgelist(file, ...) : 
At structure_generators.c:84 : Invalid (negative) vertex id, Invalid vertex id
Run Code Online (Sandbox Code Playgroud)

我在这个数据集和我之前使用的数据集之间看到的唯一区别是那些是从1开始的排序形式:

1 1
1 2
2 4
...
Run Code Online (Sandbox Code Playgroud)

有线索吗?

提前致谢

MrF*_*ick 5

它似乎可能试图将值解释为索引而不是节点名称,并且可能将它们存储在有符号整数字段中,该字段太小并且可能溢出为负数.一个潜在的工作是

library("igraph")

dd <- read.table("test.txt")
gg <- graph.data.frame(dd, directed=FALSE)
plot(gg)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

看来这种方法没有溢出问题(假设它是什么).

  • 另一种方法是使用 `read.graph("test.txt", format="ncol",directed=FALSE)`,因为 NCOL 格式使用符号顶点名称,因此文件中的每个数字都简单地存储在 `name` 属性中对应的顶点。 (2认同)