2016-03-26 4 views
0

Ich muss eine Korrelationsanalyse auf über 100 TXT-Dateien ausführen. Ich habe ein Skript, das eine einzelne Datei liest, die Daten auf die geeignete Weise organisiert und dann den Korrelationswert als neue Variable speichert. Das Skript ist ziemlich groß, da die Daten häufig neu formatiert werden.Skript mehrmals in TXT-Dateien ausführen und jede Ausgabe in einer einzigen Tabelle in r speichern

meine Frage. Wie kann ich dieses Skript wiederholt auf allen über 100. TXT-Dateien laufen lassen, und speichert den einzelnen Korrelationswert für alle 100+ in einem einzigen DF? Idealerweise würde der endgültige DF aus zwei Spalten bestehen, einer mit der .txt-ID und einer anderen mit dem Korrelationskoeffizienten, und er hätte 100+ Zeilen.

Kann ich das Skript buchstäblich kopieren und in eine for-Schleife einfügen? Wenn ja, wie würde das aussehen? Ich bin ein Newbee! Irgendwelche Ideen? Danke!

+1

Verwenden Sie 'lapply', um mehrere Dateien auszuführen. – akrun

Antwort

2

Als akrun erwähnt, können Sie dies mit lapply tun. Ohne Ihre Daten zu sehen, würde ich so etwas wie dies empfehlen:

my.files <- list.files(pattern = "txt") # use a pattern that only matches the files you want to read in 
output <- lapply(my.files, correlation_function) 

# Combine list of outputs into a single data.frame 
output.df <- do.call(rbind, output) 

Dies setzt voraus, dass Sie eine Funktion namens correlation_function haben, die einen Dateinamen als Eingabe verwendet, load s die Datei in R, führt die Korrelationsanalyse und gibt eine data.frame.

+0

Danke! Ich werde es versuchen! –

Verwandte Themen