[R] How to create 10 minute time series from hourly data

Joshua Ulrich josh.m.ulrich at gmail.com
Thu Feb 2 13:38:14 CET 2017


On Wed, Feb 1, 2017 at 10:41 AM, Mary Ann Middleton <maberg at sfu.ca> wrote:
> Hello,
>
> Apologies if this is a duplicate. I think I sent it to the wrong list yesterday.
>
> I would appreciate some direction/suggestions with a problem with a time series.
>
> I have a regular time series dataframe with hourly data. I need to create a time series with a 10 minute interval for $Level_m to compare to another time series.
>
> I would like to apply an approximation and create a time series with 10 minute intervals from the data series I have. I do not want to smooth the data and so I think a linear approximation would suffice.
>
> I have also searched xts for possible solutions but haven't had luck. Any input is greatly appreciated.
>
Here's an xts solution:

# Create xts object from data.frame
x <- xts(Data[,c("ms", "LEVEL", "TEMPERATURE", "Level_m")], Data$date.time)
# Create regular, 10-minute, "zero-width" (i.e. no columns) xts object
# that spans all the times in 'x'
x10min <- xts(, order.by = seq(start(x), end(x), by = "10 min"))
# Merge regular xts object with original data, filling via zoo::na.approx
y <- merge(x, x10min, fill = na.approx)


> ~Mary Ann Middleton, PhD
>
>
>
>
> Here is a sample of the data I have:
>
> Date Time date.time ms LEVEL TEMPERATURE Level_m
> 1 2016-05-31 15:25:00 2016-05-31 15:25:00 0 92.1767 25.171 9.401814
> 2 2016-05-31 16:25:00 2016-05-31 16:25:00 0 92.1498 18.023 9.399071
> 3 2016-05-31 17:25:00 2016-05-31 17:25:00 0 92.0781 17.951 9.391757
> 4 2016-05-31 18:25:00 2016-05-31 18:25:00 0 92.0664 16.312 9.390564
> 5 2016-05-31 19:25:00 2016-05-31 19:25:00 0 92.0250 15.043 9.386341
> 6 2016-05-31 20:25:00 2016-05-31 20:25:00 0 91.9732 14.015 9.381058
>
> Here is the str()
>
> 'data.frame': 164 obs. of 7 variables:
> $ Date : chr " 2016-05-31 " " 2016-05-31 " " 2016-05-31 " " 2016-05-31 " ...
> $ Time : chr "15:25:00" "16:25:00" "17:25:00" "18:25:00" ...
> $ date.time : POSIXct, format: " 2016-05-31 15:25:00" " 2016-05-31 16:25:00" ...
> $ ms : int 0 0 0 0 0 0 0 0 0 0 ...
> $ LEVEL : num 92.2 92.1 92.1 92.1 92 ...
> $ TEMPERATURE: num 25.2 18 18 16.3 15 ...
> $ Level_m : num 9.4 9.4 9.39 9.39 9.39 ...
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



-- 
Joshua Ulrich  |  about.me/joshuaulrich
FOSS Trading  |  www.fosstrading.com
R/Finance 2017 | www.rinfinance.com



More information about the R-help mailing list