How to create 10 minute time series from hourly data
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