Przyspieszenie konwersji 2 milionów wierszy ciągów dat do POSIX.ct

Mam csv, który zawiera około 2 milionów wierszy ciągów dat w formacie:

2012/11/13 21:10:00 

Nazwijmy tocsv$Date.and.Time

Chcę przekonwertować te daty (i ich dane towarzyszące) na xts tak szybko, jak to możliwe

Napisałem skrypt, który wykonuje konwersję w porządku (patrz poniżej), ale jest strasznie powolny i chciałbym to przyspieszyć tak bardzo, jak to możliwe.

Oto moja obecna metodologia. Czy ktoś ma jakieś sugestie, jak to zrobić szybciej?

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

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

Skrypt konwertuje te ciągi dat naPOSIX.ct. Następnie wykonuje konwersję strefy czasowej za pomocąformat (z jest zmienną reprezentującą TZ, do którego konwertuję). Następnie robię regularnexts wywołanie, aby uczynić to serią xts z resztą danych w csv.

To działa w 100%. Jest bardzo, bardzo powolny. Próbowałem uruchomić to równolegle (nic nie robi; jeśli cokolwiek to pogorszy). Co mam na myśli, mówiąc „wolno”?

 user    system   elapsed 
155.246  16.430 171.650 

To jest na 3GhZ, 16 GB RAM 2012 MB Pro. Mogę uzyskać o połowę mniej na podobnym procesorze z 32 GB pamięci RAM na komputerze z Win7

Jestem pewien, że ktoś ma lepszy pomysł - jestem otwarty na sugestie za pośrednictwemRcpp itd. Jednakidealnie rozwiązanie działa raczej z csv niż z inną metodą, np. z konfiguracją bazy danych. Powiedziawszy to, zamierzam to zrobić za pomocą dowolnej metody, która zapewni najszybszą konwersję.

Byłbym bardzo wdzięczny za wszelką pomoc. Z góry dziękuję.

questionAnswers(2)

yourAnswerToTheQuestion