Дата время am / pm в R - PullRequest
       3

Дата время am / pm в R

1 голос
/ 13 февраля 2012

У меня проблема с полем datetime временной серии:

> CO1temp[163:169,]
                     Date   OPEN   HIGH    LOW      CLOSE 
163 7/11/2011 11:45:00 PM 116.30 116.30 116.09     116.18        
164 7/11/2011 11:50:00 PM 116.16 116.78 116.13     116.70      
165 7/11/2011 11:55:00 PM 116.69 116.83 116.51     116.65      
166             7/12/2011 116.65 116.79 116.44     116.50        
167 7/12/2011 12:05:00 AM 116.50 116.60 116.39     116.47         
168 7/12/2011 12:10:00 AM 116.49 116.55 116.38     116.52        
169 7/12/2011 12:15:00 AM 116.52 116.67 116.39     116.44     

Как вы можете видеть, полночное время (строка 166) не отображается должным образом.Который создает NA, когда я создаю свой объект xts:

CO1 <- as.xts(CO1temp[, 2:5], order.by = as.POSIXct(CO1temp[,1],format='%m/%d/%Y %r'),frequency="5 minutes")
> CO1[163:169,]
                      OPEN   HIGH    LOW      CLOSE
2011-07-11 23:45:00 116.30 116.30 116.09     116.18
2011-07-11 23:50:00 116.16 116.78 116.13     116.70
2011-07-11 23:55:00 116.69 116.83 116.51     116.65
<NA>                116.65 116.79 116.44     116.50
2011-07-12 00:05:00 116.50 116.60 116.39     116.47
2011-07-12 00:10:00 116.49 116.55 116.38     116.52
2011-07-12 00:15:00 116.52 116.67 116.39     116.44

Это позже приводит к большей проблеме, когда я хочу проанализировать этот временной ряд.? strptime довольно специфичен для этого: по умолчанию для методов форматирования используется "% Y-% m-% d% H:% M:% S", если какой-либо компонент имеет компонент времени, отличный от полуночи, и "% Y-% m-% d "иначе.

Однако мое время и дата не в стандартном формате.

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

1 Ответ

0 голосов
/ 10 декабря 2012

Это своего рода хак, но это работает.
Вам просто нужно добавить "12:00:00 AM" к вашему вектору даты: те, кому не хватает информации о часах, будут правильно прочитаныдаты, у которых уже есть информация о часах, будут просто проигнорированы, и будет прочитана только та, которая уже была там.1005 * тогда ваш столбец даты уже находится в формате POSIXct, и поэтому следующее должно работать напрямую:

as.xts(CO1temp[, 2:5], order.by = CO1temp$Date, frequency = "5 minutes")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...