2016-06-07 5 views
0

Я видел, что igraph в R требуются данные структурированы следующим образом:igraph и read.table, изолированные вершины в R

nodeA nodeB int_1 int_2 
AA  BD  6 X 
BD  CA  8 Y 
AA  DE  7 Y 
...  ...  ... ... 

И я увидел, что через

data<-read.table(file) 
graph.data.frame(data) 

я получить соответствующую сеть.

Теперь скажите, что мне нужно положить изолированные узлы, я искал в документации, но не смог найти ничего, что отвечало бы на мою проблему.

Как я могу указать их в исходном файле?

Я думал, что-то вроде (как формат .sif)

nodeA nodeB int_1 int_2 
AA  DE  7 Y 
...  ...  ... ... 
isoNodeA 
isoNodeB 
... 

но очевидно read.table не принимает различное количество полей между рядами.

ответ

0

Вы можете попробовать это так:

data<-read.table(header=T, fill = TRUE, stringsAsFactors=F, text=" 
nodeA nodeB int_1 int_2 
AA  BD  6 X 
BD  CA  8 Y 
AA  DE  7 Y 
ZZ 
DE  BD  7 Y") 
data[data==""] <- NA 

library(igraph) 
g <- graph.data.frame(
    data[complete.cases(data),], 
    vertices = unique(na.omit(unlist(data[1:2])))) 
plot(g) 
Смежные вопросы