Отдельная строка даты и времени для графика

У меня есть строка даты и времени:

> mydatetime
 [1] "2012-01-07 14:53:52 EST" "2012-01-07 07:57:03 EST"
 [3] "2012-01-07 17:42:28 EST" "2012-01-08 10:28:35 EST"
 [5] "2012-01-08 10:37:22 EST" "2012-01-09 08:12:00 EST"
 [7] "2012-01-09 08:11:44 EST" "2012-01-09 17:45:24 EST"
 [9] "2012-01-09 14:28:22 EST" "2012-01-09 13:14:38 EST"

Я хотел бы разделить дату и время на отдельные объекты. Я могу успешно получить дату как:

> as.Date(mydatetime)
 [1] "2012-01-07" "2012-01-07" "2012-01-07" "2012-01-09" "2012-01-08"
 [6] "2012-01-08" "2012-01-08" "2012-01-09" "2012-01-09" "2012-01-09"

Как я могу извлечь часть времени? Моя цель - отобразить дату по оси Y и время по оси X, чтобы показать временную шкалу каждого дня. Похоже, что функция построения графика требует специальных форматов, поэтому строки здесь не работают. Любые рекомендации по функциям построения графика в стиле временной шкалы также приветствуются. Спасибо!

ОБНОВЛЕНИЕ

Ответ Саймона ниже сработал для меня. Однако сначала мне пришлось вытащить подстроку даты из mydatetime, а затем использовать as.Date.

date <- as.Date(substr(mydatetime, 0,10))

Почему-то прошло пять часов. Например, 2012-01-09 19:05:21 EST будет преобразовано в 2012-01-10. Мои настройки часового пояса выглядят нормально, и помещение этой строки в as.Date напрямую дало 2012-01-09. Нет проблем, я доволен этим решением. Спасибо.


person Banjer    schedule 10.01.2012    source источник


Ответы (1)


Есть несколько способов - либо вы рассматриваете его как строку:

time = as.POSIXct(substr(mydatetime, 12,19),format="%H:%M:%S")
plot(time, as.Date(mydatetime))

или вы вычисляете даты:

time = .POSIXct(as.numeric(as.POSIXct(mydatetime)) %% 86400)
plot(time, as.Date(mydatetime))

Существует тонкая разница в результирующих диапазонах графика.

person Simon Urbanek    schedule 10.01.2012
comment
Я не могу найти время, чтобы просто быть HMS. Я все еще получаю всю строку даты: as.POSIXct(substr("2016-03-02 16:14:27", 12, 19), format="%H:%M:%S") дает "2016-03-16 16:14:27 EDT", когда я хочу только 16:14:27 - person yake84; 16.03.2016