#r #xts #posixct
#r #xts #posixct
Вопрос:
> 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 часов дня, но оно отображается как.xts интерпретирует это как 12 часов ночи, и поэтому все цитаты, которые происходят между 12:00:00 и 04:00: 00, интерпретируются как относящиеся к am.
Интересно, почему MySQL не преобразовал время в 24-часовой формат часов, поскольку я использовал %H в запросе ЗАГРУЗКИ ДАННЫХ. Интересно, есть ли способ принудительно изменить R через as.POSIXct. Расследование…..
Комментарии:
1. Вы не предоставили достаточно информации, чтобы точно ответить на вопрос. Пожалуйста, предоставьте воспроизводимый пример.
2. Я не могу воспроизвести это поведение. Вы заметили, что значения newAMKR отличаются от значений в AMKR? Я полагаю, что в вашей сессии есть что-то не то, что вы думаете.
3. Спасибо, Йорис, что указал на это. Это привело меня к открытию, что формат времени является корнем проблемы. В настоящее время я занимаюсь расследованием. Спасибо за вашу помощь.
4. Я разобрался с проблемой. Мне нужно загрузить данные в MySQL, используя следующий формат времени: ‘%h:%i:%s%p’. Ранее я не указывал %p . Также, когда вы используете %p , вам нужно использовать нижний регистр %h .
5. Спасибо, Джошуа! Я просто последовал вашему предложению.
Ответ №1:
Я разобрался с проблемой. Мне нужно загрузить данные в MySQL, используя следующий формат времени: ‘%h:%i:%s%p’. Ранее я не указывал %p. Также, когда вы используете %p, вам нужно использовать %h в нижнем регистре.