2013-01-15 17 views
7

Mam kod próbki na badania w następujący sposób:pomocą graph.adjacency (R) w

library(igraph) 
rm(list=ls()) 
dat=read.csv(file.choose(),header=TRUE,row.names=1,check.names=T) # read .csv file 
m=as.matrix(dat) 
net=graph.adjacency(adjmatrix=m,mode="undirected",weighted=TRUE,diag=FALSE) 

gdzie stosuje się plik csv jako wejście, które zawierają następujące dane:

23732 23778 23824 23871 58009 58098 58256 
23732 0 8 0 1 0 10 0 
23778 8 0 1 15 0 1 0 
23824 0 1 0 0 0 0 0 
23871 1 15 0 0 1 5 0 
58009 0 0 0 1 0 7 0 
58098 10 1 0 5 7 0 1 
58256 0 0 0 0 0 1 0 

Po I stosowane następujące polecenie, aby sprawdzić wartości masy:

E(net)$weight 

oczekiwany wynik jest trochę tak:

> E(net)$weight 
[1] 8 1 10 1 15 1 1 5 7 1 

Ale Dostaję dziwne wartości (i za każdym razem inny):

> E(net)$weight 
[1] 2.121996e-314 2.121996e-313 1.697597e-313 1.291034e-57 1.273197e-312 5.092790e-313 2.121996e-314 2.121996e-314 6.320627e-316 2.121996e-314 1.273197e-312 2.121996e-313 
[13] 8.026755e-316 9.734900e-72 1.273197e-312 8.027076e-316 6.320491e-316 8.190221e-316 5.092790e-313 1.968065e-62 6.358638e-316 

jestem w stanie dowiedzieć się, gdzie i co robię źle? Proszę pomóż mi uzyskać poprawny oczekiwany wynik, a także proszę mi powiedzieć, dlaczego jest to dziwne wyjście i że za każdym razem inne, gdy go uruchomię.

Dzięki Nitin

Odpowiedz

2

Problem wydaje się wynikać z danych typu elementów macierzy. graph.adjacency oczekuje elementów typu numeric. Nie jestem pewien, czy to błąd.

Po ty,

m <- as.matrix(dat) 

ustaw jej tryb numeric przez:

mode(m) <- "numeric" 

a następnie wykonaj:

net <- graph.adjacency(m, mode = "undirected", weighted = TRUE, diag = FALSE) 
> E(net)$weight 
[1] 8 1 10 1 15 1 1 5 7 1 
+0

Dzięki dużo Arun. To działało dla mnie. –

+1

To jest błąd: https://bugs.launchpad.net/igraph/+bug/1019624 –

6

tylko mały przykład pracuje poniżej, znacznie jaśniejsze niż Wejście CSV.

library('igraph'); 
adjm1<-matrix(sample(0:1,100,replace=TRUE,prob=c(0.9,01)),nc=10); 
g1<-graph.adjacency(adjm1); 
plot(g1) 

enter image description here

PS: ?graph.adjacency ma wiele dobrych przykładów (pamiętaj, aby uruchomić library('igraph')).

Podobne wątki

  1. Creating co-occurrence matrix
  2. Co-occurrence matrix using SAC?