Welches ist die beste Methode, um ein Skript wiederholt auf n .csv-Dateien in R anzuwenden?

8

Meine Situation :

  1. Ich habe eine Reihe von CSV-Dateien mit dem gleichen Suffix vor .csv, aber die ersten beiden Zeichen des Dateinamens sind unterschiedlich (zB AA01.csv, AB01.csv, AC01.csv usw.)
  2. Ich habe ein R-Skript, das ich für jede Datei ausführen möchte. Diese Datei extrahiert im Wesentlichen die Daten aus der .csv und weist sie Vektoren zu / konvertiert sie in Zeitreihenobjekte. (ZB AA01 xts timeseries Objekt, AB01 xts Objekt)

Was ich erreichen möchte :

  1. Betten Sie das Skript in eine größere Schleife (oder entsprechend) ein, um nacheinander jede Datei zu durchlaufen und das Skript
  2. anzuwenden
  3. Entfernen Sie die erstellten Zwischenobjekte (siehe Codeausschnitt unten)
  4. Lassen Sie mich mit den endgültigen xts-Objekten aus jeder Rohdatendatei (dh AA01 bis AC01 usw. als Werte / Vektoren usw.)

Was wäre der richtige Weg, dieses Skript in R einzubetten? Sorry, aber ich bin ein Programmier-Noob!

Mein Skriptcode unter ... Überschrift jeder Spalte in jeder CSV ist DATE, TIME, VALUE

%Vor%

und wiederholen Sie dann jede .csv-Datei, bis alle xts-Objekte extrahiert sind.

dh, was wir in R landen würden, bereit für weitere Anwendungen sind:

%Vor%

jede Hilfe, wie dies zu tun wäre, würde sehr geschätzt werden.

    
n.e.w 27.04.2011, 03:46
quelle

2 Antworten

8

Ich finde eine for-Schleife und Listen ist gut genug für solche Sachen. Sobald Sie einen funktionierenden Code haben, ist es einfach genug, von einer Schleife in eine Funktion zu wechseln, die sapply ied oder ähnlich sein kann, aber diese Art der Vektorisierung ist sowieso idiosynkratisch und außerhalb von privaten Einzeilern wahrscheinlich nicht sinnvoll.

Wahrscheinlich möchten Sie nicht mehrere Objekte mit unterschiedlichen Namen im Arbeitsbereich zuweisen (dies ist eine FAQ, die normalerweise als "Wie weise ich () ..." auf).

Bitte hüten Sie sich vor meinem nicht getesteten Code.

Ein Vektor aus Dateinamen und eine Liste mit einem benannten Element für jede Datei.

%Vor%

Schleife über jede Datei.

%Vor%

Nun sind alle gelesenen Objekte in lst , aber Sie sollten testen, dass die Datei verfügbar ist, dass sie korrekt gelesen wurde und dass Sie die Namen möglicherweise sinnvoller als nur den Dateinamen ändern möchten .

Drucken Sie das erste Objekt anhand des Namensindex aus der Liste aus:

%Vor%     
mdsumner 27.04.2011, 03:58
quelle
12

Stellen Sie sicher, dass Sie den Befehl Rs dir verwenden, um die Liste der Dateinamen zu erstellen, anstatt sie manuell einzugeben.

%Vor%     
Thomson Comer 27.04.2011 04:23
quelle

Tags und Links