2017-02-28 5 views
0

Ich habe noch nicht gelernt, mit R zu arbeiten. Das beabsichtige ich in der Zukunft, aber dieses spezielle Problem erfordert meine unmittelbare Aufmerksamkeit.Wie transformiert man Daten aus zwei Spalten in eine Matrix?

Ich versuche, zwei Spalten von Daten in Gephi für die Visualisierung zu importieren. Genauer gesagt, ich versuche, diese zu konvertieren:

A x 
A y 
A z 

B x 
B y 
B w 

in dieser:

x y z w 
x 0 2 1 1 
y 2 0 1 1 
z 1 1 0 0 
w 1 1 0 0 

Danach muß ich das obere Dreieck der Matrix nehmen und es in diesem Format setzen:

x y 2 
x z 1 
x w 1 
y z 1 
y w 1 
z w 0 

Ich weiß nicht, wie einer dieser Prozesse aufgerufen wird, so dass meine Suche hier und auf Google leer war.

Kann mir bitte jemand bitte in die richtige Richtung zeigen?

+0

Ihr Beispiel ist nicht völlig klar, aber vielleicht 'data.frame (Tabelle (entstack (df [2: 1]))) – alistaire

+0

Warum sind die Diagonalen alle Null? Sollten die Elemente "xx" und "yy" nicht beide 1 sein, da sie in Spalte A und B erscheinen? – useR

+0

@alistaire hat nicht funktioniert, aber ich habe die Antwort gefunden. Vielen Dank! –

Antwort

1

Es gefunden. Dies wird als Co-Occurrence-Matrix bezeichnet. Die diagonalen Elemente sind Null, weil ich zähle, wie oft sie zusammen mit anderen in einer Gruppe erscheinen, aber nicht sie selbst. Der folgende Code gearbeitet:

V <- crossprod(table(dat[1:2])) 
diag(V) <- 0 
V 

Source

ich den Code unten lief mit einer unteren Dreiecksmatrix

V[upper.tri(V)] = NA 

am Ende Und dies dann mit den Co-Korrespondenz Spalten am Ende

Source

Verwandte Themen