2016-03-26 13 views
1

igraph paketi ile analiz ettiğim ağ grafiklerinin (yani 1000+ bitişik matrisler) bir listesiyle çalışıyorum. Grafikler, her bir grafik benzersiz bir ID'ye sahip olan bölünmüş bir dosyada depolanır.igraph, r: matrisler için liste node merkezi puanları

Aşağıdaki kodu kullanarak, her biri ilgili grafik bireysel düğümlerin betweenness dışmerkezlik puanları hesapladık

: Artık

b <- function (b) betweenness(b, directed = FALSE, normalized = TRUE) 
Between <- lapply (listofgraphs, b) 

show(Between) #looks like this: 

$`35630`   #Graph ID 
1676 1741 1750  #Node ID 
0 1 0  #Scores 

$`35631` 
1738 1750 
0  1 

$`35633` 
1738 1750 4110 
0 0 0 

, ne gerek grafikte ID, düğüm kimlikleri ve birey için Sütun ile bir dataframe olan aradaki puanlar. Şunun gibi:

Graph.ID Node.ID Betweenness 
35630  1676  0 
35630  1741  1 
35630  1759  0 
35631  1738  0 
35631  1750  1 
35631  1738  0  
35633  1750  0 
35633  et cetera ..... 

Ben listelenmemesini, rbind ve bu tür denedim, ama nedense ben bu işe alınamıyor. Birisi bana bu konuda yardımcı olabilir, bu harika olurdu!

+0

yılında liststack sonra ing adlı vector s melt olabilir; eritin (Arasındaki) ' – akrun

+0

Teşekkürler, bu grafik ID'leri için çalıştı, ancak node ID'leri için çalıştı. (yani, 'Graph.ID' ve 'Betweenness' ile iki sütun aldım) Her ikisini de dahil etmenin bir yolu var mı? –

+0

mel Eriyik (lapply (Yığın arasında)) [- 2] ' – akrun

cevap

0

Biz `melt` yani` kitaplığı (reshape2) ile deneyin list

library(reshape2) 
melt(lapply(Between, stack))[-2]