часы извлечения и секунды от POSIXct для графического изображения целей в R

Предположим, что у меня есть следующее data.frame foo

           start.time duration
1 2012-02-06 15:47:00      1
2 2012-02-06 15:02:00      2
3 2012-02-22 10:08:00      3
4 2012-02-22 09:32:00      4
5 2012-03-21 13:47:00      5

И class(foo$start.time) возвраты

[1] "POSIXct" "POSIXt" 

Я хотел бы создать график foo$duration против foo$start.time. В моем сценарии мне только интересно во время суток, а не фактический день года. Как каждый идет об извлечении времени суток как hours:seconds от POSIXct класс вектора?

58
задан 23 May 2012 в 19:26

1 ответ

Это - древняя тема, но я нашел очень немного вопросов и ответов об этом вопросе. Моим решением является следующий

library(hms)
foo <- data.frame(start.time = c("2012-02-06 15:47:00", 
                             "2012-02-06 15:02:00",
                             "2012-02-22 10:08:00"),
              duration   = c(1,2,3))

foo$start.time = as.POSIXct( foo$start.time )

g1 = ggplot( ) + xlab("") + 
  geom_line( data = foo, aes(x = as.hms(start.time), y = duration ), color = "steelblue" )
g1

, Если требуется добавить ручные повреждения времени (!), затем

time_breaks =    as.POSIXlt(c(
                   "2012-02-06 12:35:00 MSK", 
                   "2012-02-06 13:15:00 MSK",
                   "2012-02-06 14:22:00 MSK",
                   "2012-02-06 15:22:00 MSK"))
 g1 + 
  scale_x_time( breaks = as.hms( time_breaks ) ) +
  theme(  axis.text.x = element_text( angle=45, vjust=0.25) ) 
1
ответ дан 1 November 2019 в 14:42

Другие вопросы по тегам:

Похожие вопросы: