Ich möchte eine Reihe von Datenrahmen zusammenführen (weil es scheint, viele Operationen sind einfacher, wenn Sie nur mit einem zu tun haben, aber korrigieren Sie mich, wenn ich falsch liege).Verschmelzen Sie viele Datenrahmen aus CSV-Dateien
Derzeit ein Datenrahmen wie diese habe ich:
ID, var1, var2
A, 2, 2
B, 4, 5
.
.
Z, 3, 2
Jede ID auf einer einzigen Zeile w/mehrere Einzelmessungen
I w/wiederholte Messung für jede ID auch eine CSV-Datei haben, wie:
filename = ID_B.csv
time, var4, var5
0, 1, 2
1, 4, 5
2, 1, 6
...
Was würde ich ich mag s:
ID, time, va1, var2, var4, var5
...
B, 0, 4, 5, 1, 2,
B, 1, 4, 5, 4, 5,
B, 2, 4, 5, 1, 6,
...
Ich interessiere mich nicht wirklich für die Spaltenreihenfolge. Die einzige Lösung, die ich mir vorstellen kann, besteht darin, jeder csv-Datei die ID-Spalte hinzuzufügen und sie dann mehrmals durchlaufen zu lassen, indem sie merge()
mehrmals aufruft. Gibt es einen eleganteren Ansatz?
Oh! Ich habe total vermisst, dass jeder csv die Maße für eine einzige ID war. Do! Deine Antwort ist sehr gut. –
Sie brauchen nur 'ldply' und nicht' mdply', und Sie können auch Dinge vereinfachen, indem Sie 'names (filenames) <- ids' machen. Außerdem verwenden Sie '.' anstelle von' getwd() 'in' list.files'. Schöne Antwort anders. – hadley