Ускоренное преобразование 2 миллионов строк строк даты в POSIX.ct

У меня есть CSV, который включает в себя около 2 миллионов строк строк даты в формате:

2012/11/13 21:10:00 

Позвоните такcsv$Date.and.Time

Я хочу преобразовать эти даты (и сопровождающие их данные) в xts как можно быстрее

Я написал скрипт, который прекрасно выполняет преобразование (см. Ниже), но он ужасно медленный, и я хотел бы максимально ускорить это.

Вот моя текущая методология. У кого-нибудь есть предложения, как сделать это быстрее?

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

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

Таким образом, скрипт преобразует эти строки даты вPOSIX.ct, Затем он делает преобразование часового пояса, используяformat (z переменная, представляющая TZ, в который я конвертирую). Я тогда делаю регулярныйxts вызовите, чтобы сделать эту серию XTS с остальными данными в CSV.

Это работает на 100%. Это просто очень, очень медленно. Я пытался запустить это параллельно (это ничего не делает; если что-нибудь делает это хуже). Что я имею в виду под «медленным»?

 user    system   elapsed 
155.246  16.430 171.650 

Это на 3GhZ, 16 ГБ оперативной памяти 2012 МБ Pro. Я могу получить примерно половину этого на аналогичном процессоре с 32 ГБ ОЗУ на машине с Win7

Я уверен, что у кого-то есть идея получше - я открыт для предложений черезRcpp и т.д. Однако,в идеале решение работает с CSV, а не каким-либо другим методом, таким как настройка базы данных, Сказав это, я собираюсь сделать это любым способом, который даст самое быстрое преобразование.

Я был бы очень признателен за любую помощь на всех. Заранее спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос