NOTE: I will provide data if necessary, but I didn't want clutter everyones mailbox All: I have a time series with level and temperature data for 11 sites for each of three bases. I will have to do this more than once is what I am saying here. OK, The time series are zoo objects with index values in chron format. The problem is that the date and times should be at even 15 min intervals, but because of operator error (me) they are on 15 min intervals for some of the data and on 15+1 min intervals for some and 15+1.56 for some of the same site. I would like to create a regular 15min time series from this and need to know if I can just create an empty time series with the entire date time I would like and then aggregate. I am not sure how merge or aggregate would act in this particular situation. I want to "snap" readings to the nearest 15min interval. kindest regards, -- Stephen Sefick ____________________________________ | Auburn University | | Department of Biological Sciences | | 331 Funchess Hall | | Auburn, Alabama | | 36849 | |___________________________________| | sas0025 at auburn.edu | | http://www.auburn.edu/~sas0025 | |___________________________________| Let's not spend our time and resources thinking about things that are so little or so large that all they really do for us is puff us up and make us feel like gods. We are mammals, and have not exhausted the annoying little problems of being mammals. -K. Mullis
Gabor Grothendieck
2010-Jun-28 21:10 UTC
[R] Zoo series to a date time stamp that is regular
On Mon, Jun 28, 2010 at 4:42 PM, stephen sefick <ssefick at gmail.com> wrote:> NOTE: I will provide data if necessary, but I didn't want clutter > everyones mailbox > > All: > I have a time series with level and temperature data for 11 sites for > each of three bases. ?I will have to do this more than once is what I > am saying here. ?OK, ?The time series are zoo objects with index > values in chron format. ?The problem is that the date and times should > be at even 15 min intervals, but because of operator error (me) they > are on 15 min intervals for some of the data and on 15+1 min intervals > for some and 15+1.56 for some of the same site. ?I would like to > create a regular 15min time series from this and need to know if I can > just create an empty time series with the entire date time I would > like and then aggregate. ?I am not sure how merge or aggregate would > act in this particular situation. ?I want to "snap" readings to the > nearest 15min interval. > kindest regards,In the development version of zoo na.locf has an xout argument (modeled after ?approx). If you add an xout = g argument where g is the desired grid then it will fill the grid with NAs, fill the NAs in the usual na.locf way and then drop any points not on the grid. Here is an example taken the development version of the zoo faq which uses 10 minutes. Its just two lines. The first sets up the grid and the second is the just-mentioned na.locf call. # load development version of na.locf library(zoo) library(chron) source("http://r-forge.r-project.org/scm/viewvc.php/*checkout*/pkg/zoo/R/na.locf.R?revision=725&root=zoo") # read data into z Lines <- "Time,Value 2009-10-09 5:00:00,210 2009-10-09 5:05:00,207 2009-10-09 5:17:00,250 2009-10-09 5:30:00,193 2009-10-09 5:41:00,205 2009-10-09 6:00:00,185" library(chron) z <- read.zoo(textConnection(Lines), FUN = as.chron, sep = ",", header = TRUE) # create 10 minute grid, g, and align to it g <- seq(start(z), end(z), by = times("00:10:00")) na.locf(z, xout = g) At the expense of a slightly more complex call, its also possible to calculate it with the current CRAN version of zoo if you use na.approx in place of the na.locf line above as shown: na.approx(z, xout = g, method = "constant", rule = 2)
Apparently Analagous Threads
- Repeat the first day data through all the day. Zoo
- approxfun returning value higher than I would expect
- How to do operations on zoo/xts objects with Monthly and Daily periodicities
- [zoo] - Individual zoo or data frames from non-continuous zoo series
- convert zoo object to "standard" R object so I can plot and output to csv file