Chciałbym scalić kilka ramek danych razem (ponieważ wydaje się, że wiele operacji jest łatwiejszych, jeśli zajmujesz się tylko jedną, ale popraw mnie, jeśli się mylę).Scalanie wielu ramek danych z plików CSV
Obecnie ma jedną ramkę danych w następujący sposób:
ID, var1, var2
A, 2, 2
B, 4, 5
.
.
Z, 3, 2
Każdy identyfikator jest jednym rzędzie w/kilka pojedynczych pomiarów
również mieć plik csv w/powtarzane miary dla każdego identyfikatora jak:
filename = ID_B.csv
time, var4, var5
0, 1, 2
1, 4, 5
2, 1, 6
...
Co bym jakbym 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,
...
Nie obchodzi mnie dokładnie kolejność kolumn. Jedynym rozwiązaniem, które mogę wymyślić jest dodanie kolumny ID do każdego pliku csv, a następnie przechodzenie przez nie kilka razy wywołując merge()
. Czy istnieje bardziej eleganckie podejście?
Oh! Całkowicie przegapiłem, że każdy csv był pomiarem pojedynczego ID. Doh! Twoja odpowiedź jest bardzo dobra. –
Potrzebujesz tylko 'ldply', a nie' mdply', a także możesz uprościć rzeczy, wykonując 'names (nazwy plików) <- ids'. Również używasz '.' zamiast' getwd() 'w' list.files'. Dobra odpowiedź inaczej. – hadley