R: создание объекта xts меняет формат времени - PullRequest
0 голосов
/ 12 мая 2011
> str(s)
 POSIXct[1:6630], format: "2011-02-14 09:31:00" "2011-02-14 09:32:00" "2011-02-14 09:33:00" "2011-02-14 09:34:00" ...
> head(s)
[1] "2011-02-14 09:31:00 EST" "2011-02-14 09:32:00 EST" "2011-02-14 09:33:00 EST" "2011-02-14 09:34:00 EST"
[5] "2011-02-14 09:35:00 EST" "2011-02-14 09:36:00 EST"
> 


> head(AMKR)
  date_holding time_holding close
1   2011-02-14     09:31:00  7.66
2   2011-02-14     09:32:00  7.58
3   2011-02-14     09:33:00  7.54
4   2011-02-14     09:34:00  7.54
5   2011-02-14     09:35:00  7.56
6   2011-02-14     09:36:00  7.54

> as.xts(AMKR[,-1:-2], s) -> newAMKR
> head(newAMKR)
                    [,1]
2011-02-14 00:00:00 7.74
2011-02-14 00:01:00 7.74
2011-02-14 00:02:00 7.74
2011-02-14 00:03:00 7.74
2011-02-14 00:04:00 7.74
2011-02-14 00:05:00 7.73

Как видите, время изменилось.

Тикер AMKR извлекается из базы данных mySQL, расположенной на той же машине.

Если кто-нибудь может указать мне правильное направление, это будет очень ценно.

=============================================== =

Обновление: возникла пара проблем.

1) Загрузка данных в mySQL была выполнена с форматом времени, установленным на% h:% i:% s, когда для него должно было быть установлено значение% H:% i:% s (обратите внимание на заглавную букву H ).

2) Я удалил данные в mySQL и заново загрузил, используя H . Теперь я получаю время 12:00:00 для цитаты, встречающейся в 12:00, но она выглядит как .xts интерпретирует это как 12:00, и поэтому все цитаты, которые встречаются между 12:00:00 и 04:00:00, интерпретируются как происходящие в утра .

Интересно, почему mySQL не преобразовал время в 24-часовой формат, поскольку я использовал % H в запросе LOAD DATA. Интересно, есть ли способ форсировать изменение R через as.POSIXct. Расследование .....

1 Ответ

1 голос
/ 30 мая 2011

Я разобрался в проблеме. Мне нужно загрузить данные в mySQL, используя следующий формат времени: «% h:% i:% s% p». Ранее я пропустил% p. Также, когда вы используете% p, вам нужно использовать строчные буквы% h.

...