Beschleunigung der Konvertierung von 2 Millionen Zeilen mit Datumszeichenfolgen nach POSIX.ct

Ich habe eine CSV-Datei, die ungefähr 2 Millionen Zeilen mit Datumszeichenfolgen im Format enthält:

2012/11/13 21:10:00 

Nennen wir dascsv$Date.and.Time

Ich möchte diese Daten (und die zugehörigen Daten) so schnell wie möglich in xts konvertieren

Ich habe ein Skript geschrieben, das die Konvertierung einwandfrei durchführt (siehe unten), aber es ist furchtbar langsam und ich möchte dies so weit wie möglich beschleunigen.

Hier ist meine aktuelle Methodik. Hat jemand irgendwelche Vorschläge, wie man dies schneller macht?

 dt <- as.POSIXct(csv$Date.and.Time,tz="UTC")

idx <- format(dt,tz=z,usetz=TRUE)

Das Skript konvertiert diese Datumszeichenfolgen also inPOSIX.ct. Anschließend wird eine Zeitzonenumwandlung mit durchgeführtformat (z ist eine Variable, die die TZ darstellt, in die ich konvertiere. Ich mache dann eine regelmäßigexts Rufen Sie auf, um eine XTS-Serie mit den restlichen Daten in der CSV zu erstellen.

Das funktioniert zu 100%. Es ist nur sehr, sehr langsam. Ich habe versucht, dies parallel laufen zu lassen (es macht nichts; wenn überhaupt, macht es es schlimmer). Was meine ich mit "langsam"?

 user    system   elapsed 
155.246  16.430 171.650 

Das ist auf einem 3GhZ, 16GB RAM 2012 MB Pro. Ich kann ungefähr die Hälfte davon auf einem ähnlichen Prozessor mit 32 GB RAM auf einer Win7-Maschine erhalten

Ich bin sicher, jemand hat eine bessere Idee - ich bin offen für Vorschläge überRcpp etc. Allerdingsidealerweise funktioniert die lösung mit csv und nicht mit einer anderen methode wie dem einrichten einer datenbank. Abgesehen davon bin ich in der Lage, dies mit welcher Methode auch immer zu tun, um die schnellste Konvertierung zu erzielen.

Ich wäre über jede Hilfe sehr dankbar. Danke im Voraus.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage