Отдельная строка даты и времени для сюжета - PullRequest
1 голос
/ 10 января 2012

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

> 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, чтобы показать временную шкалу каждого дня. Похоже, что функция plot требует специальных форматов, поэтому строки здесь не будут работать. Любые рекомендации по функциям построения графиков также приветствуются. Спасибо!

UPDATE

Ответ Саймона ниже работал для меня. Однако мне пришлось сначала извлечь подстроку даты из 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. Нет проблем, я доволен этим решением. Спасибо.

1 Ответ

3 голосов
/ 10 января 2012

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

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))

Существует небольшая разница в результатедиапазоны участков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...