2017-10-26 5 views
2

Ich habe Daten auf jeder Interaktion, dieeine gewichtete Kantenliste in eine ungewichtete in r drehen

könnte und wöchentlich
id1  id2 timestalked date 
1  2  1   1/1/2010 
1  3  0   1/1/2010 
... 
100  2  4   1/8/2010 
... 

ich für die diese soziale Stunde an einer Universität Club geschah zunächst in als gerichteter Graph zu ladende Gesamter Zeitraum für die Visualisierung. Für die gewichtete Matrix habe ich getan.

library(igraph); 
el <- read.csv("el.csv", header = TRUE); 
G <- graph.data.frame(el,directed=TRUE); 
A <- as_adjacency_matrix(G,type="both",names=TRUE,sparse=FALSE,attr="timestalked"); 

Ich dachte attr="timestalked" Entfernen der Gewichte> 0 in 1 drehen würde, aber das scheint nicht

library(igraph); 
el <- read.csv("el.csv", header = TRUE); 
G_unweight <- graph.data.frame(el,directed=TRUE); 
A_unweight <- as_adjacency_matrix(G_unweight,type="both",names=TRUE,sparse=FALSE) 

Antwort

2

as_adjacency_matrix() jedes Argument Gewichte zu steuern, bieten nicht zu funktionieren. Beachten Sie, dass nur die Anzahl der Kanten zwischen Knoten aus dem Diagramm angegeben wird.

Um die gewichtete Kantenliste in eine ungewichtete man sich wenden, versuchen Sie diese

A <- as_adjacency_matrix(G, type = "both", names = TRUE, sparse = FALSE) 
A[A > 1] <- 1 

Beachten Sie, dass Sie auch die graph_from_adjacency_matrix() Funktion kann durch Angabe weighted = NULL eine ungewichtete igraph Graph von der Adjazenzmatrix zu erstellen.

+0

Bin ich richtig bei der Annahme, dass ein Gewicht von 0 keine Verbindung zwischen A und B zieht? Meine Gewichte sind die Anzahl der Interaktionen und ich möchte, dass die 0s zu keinem Link führen. – CJ12

+0

Ja, das liegt daran, dass 0s nach der Verwendung von 'as_adjacency_matrix()' zu keiner Interaktion (Kante) zwischen Knoten führt. – ANG

Verwandte Themen