I have an xts timeseries as
Timestamp - X
30-07-2019 23:00:00 - 110
31-07-2019 00:00:00 - 120
31-07-2019 01:00:00 - 105
31-07-2019 02:00:00 - 110
31-07-2019 03:00:00 - 100
31-07-2019 04:00:00 - 105
31-07-2019 05:00:00 - 115
31-07-2019 06:00:00 - 125
Now i want the timestamp to be the hours to be the hour of the day, for example
Timestamp - X
-1 - 110
0 - 120
1 - 105
2 - 110
3 - 100
4 - 105
5 - 115
6 - 125
And still keep it as an xts series, in order to use it with dygraph in a shiny application
Another option is to use lubridate
approach:
library(lubridate)
hours_from_midnight <- hour(dmy_hms(df$Timestamp))
# boolean vector indicating if the time mome
after_midday <- pm(dmy_hms(df$Timestamp))
# coercion boolean to numerical is used
df$hour <- hours_from_midnight - 24 * after_midday