I haben, wobei jede Zeile einen Datenrahmen eine Folge von SchulenWie verschiebt man Spalten eines Datenrahmens in Zeilen nach den ersten Spalten?
repräsentiereedu <- read.table(header=TRUE, text="Elem Mid High
e1 m1 h1
e2 m2 h2
e1 m2 h2
e3 m1 h1")
Ich möchte das in eine Kantenliste zu transformieren
s1 s2
1 e1 m1
2 e2 m2
3 e1 m2
4 e3 m1
5 m1 h1
6 m2 h2
7 m2 h2
8 m1 h1
für einen gerichteten Graphen (über das IGRAPH Paket) .
Hier ist, wie ich es tun:
e2m <- edu[,1:2]
m2h <- edu[,2:3]
colnames(e2m) <- c("s1", "s2")
colnames(m2h) <- c("s1", "s2")
schools <- rbind(e2m,m2e)
„Schulen“ enthält, was ich will, aber es ist iterativ und wird umständlich, wenn ich eine vierte Spalte (zum Beispiel „Uni“) hinzufügen möchten. Was ist der vektorisierte Weg, dies zu tun?
Kann ich sagen, dass dies, dass Sie (1) 'fragte um eine Frage, (2)' bieten eine kleine Arbeitsdaten Set', (3) eine große Frage ist 'zeige gewünschte Ausgabe' und (4)' was du gerade tust.' +1 –
Ich bin leider unerfahren in seiner Verwendung, aber ist das nicht was 'schmelzen' -' recast' tut? –
@Carl, dachte ich genauso, aber das ist nicht der Fall, zumindest nicht einfach. Beachten Sie, dass die erste Spalte des transformierten 'dat.frame' sowohl die erste Spalte als auch die zweite Spalte von' edu' enthält. – Arun