2016-11-08 4 views
0

Ich habe eine Netzwerkgrafik als eine Matrix, geladen durch eine CSV in R, und es zählt die Anzahl der SMS-Nachrichten zwischen Menschen. z:Konvertieren Matrix zu Tabelle in R

NULL john mary jim bob sue 
john 0  5  2  0  1 
mary 5  0  2  0  5 
jim 2  2  0  8  10 
bob 0  0  8  0  0 
sue 1  5  10  0  0 

Ich möchte diese in eine Tabelle für Gephi transponieren, die wie folgt funktioniert:

SOURCE TARGET WEIGHT 
john  mary  5 
john  jim  2 
john  bob  0 
john  sue  1 
mary  jim  2 
mary  bob  0 
mary  sue  5 
jim  bob  8 
jim  sue  10 
bob  sue  0 

Dann kann ich visualisieren und damit als Netzwerk-Graph in Gephi spielen.

Gibt es eine schnelle R-Operation für die Matrix ('m'), um sie in die Tabelle zu übernehmen und als eine weitere CSV-Datei zu exportieren?

Thanks :)

Antwort

3
library(reshape2) 

df <- melt(m) ##Assuming your data is a matrix. i.e. the people's names are the row and col names. 
colnames(df) <- c("Source","Target","Weight") 
+1

Sie, dass ein Einzeiler mit machen kann 'schmelzen (mat, = c VarNames ("Source", "Ziel"), value.name = "Gewicht")' – Nate

+0

Perfekt ! Das funktioniert! – joep1

+0

Wie würden Sie nur die obere Hälfte der Matrix nehmen, damit wir nicht mit doppelten Beziehungen enden? –

Verwandte Themen