2014-09-17 1 views
1

Я пытаюсь импортировать список краев в объект графа igraph в R. Вот как я пытаюсь сделать так:Импорт списка края в igraph в R

graph <- read.graph(edgeListFile, directed=FALSE) 

Я использовал этот метод до в миллион раз, но он просто не будет работать для этого конкретного набора данных:

294834289 476607837 
560992068 2352984973 
560992068 575083378 
229711468 204058748 
2432968663 2172432571 
2473095109 2601551818  
... 

R бросает мне эту ошибку:

Error in read.graph.edgelist(file, ...) : 
At structure_generators.c:84 : Invalid (negative) vertex id, Invalid vertex id 

Единственное различие, которое я вижу между этим набором данных и те, которые я ранее использовались в том, что те были в отсортированном виде, начиная с 1:

1 1 
1 2 
2 4 
... 

Есть улики?

Спасибо Расширенного

ответ

5

Вполне вероятно, что он пытается интерпретировать значения в качестве индексов, а не имен узлов, и это, вероятно, хранить их в Целочисленном поле, который слишком мал, и, вероятно, переполненная в отрицательные числа. Одним из потенциальных Обходной

library("igraph") 

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

enter image description here

Кажется, этот метод не имеет проблему переполнения (при условии, что это то, что это было).

+0

Спасибо, связка. Это решило. Я бы никогда не догадался, что это будет тип данных. –

+2

Альтернативой является использование 'read.graph (" test.txt ", format =" ncol ", direct = FALSE)', потому что формат NCOL использует символические имена вершин, поэтому каждый номер в файле просто сохраняется в 'name' атрибут соответствующей вершины. –

+0

Как сделать наоборот: экспортируйте V и E из графика в файл. – Sigur