Does this work for you: > x <- read.table(text = " date time Voltage LwTempDownelling LwDownwelling > LwDownwelling_min LwDownwelling_max LwTempUpwelling + 1 2011-11-01 00:00:00 2.732447 17.30 30.0 14.0 39.5 17.83 + 2 2011-11-01 00:10:00 2.731534 17.46 15.3 11.1 24.6 17.95 + 3 2011-11-01 00:20:00 2.731368 17.43 28.7 24.6 30.7 17.93 + 4 2011-11-01 00:30:00 2.730703 17.36 40.4 29.8 43.5 17.86 + 5 2011-11-01 00:40:00 2.729567 17.26 41.6 40.5 42.6 17.76" + , header = TRUE + ) > # convert the time > x$timestamp <- as.POSIXct(paste(x$date, x$time)) > # calculate the start of time ranges > start <- trunc(min(x$timestamp), units = 'hour') > # create breakpoints at 30 minutes > breaks <- seq(from = start + , to = max(x$timestamp) + 3600 # make sure you have the last range + , by = '30 min' + ) > # slice up the data by adding index > x$interval <- findInterval(x$timestamp, breaks) > > # determine colMeans > newData <- do.call(rbind, tapply(x[4:8], x$interval, colMeans)) > newData <- as.data.frame(newData) > > # add the time back > newData$timestamp <- breaks[as.integer(rownames(newData))] > newData LwTempDownelling LwDownwelling LwDownwelling_min LwDownwelling_max LwTempUpwelling 1 17.39667 24.66667 16.56667 31.60 17.90333 2 17.31000 41.00000 35.15000 43.05 17.81000 timestamp 1 2011-11-01 00:00:00 2 2011-11-01 00:30:00 > >
On Mon, Dec 19, 2011 at 4:28 AM, Mathew Brown <mathew.br...@forst.uni-goettingen.de> wrote: > > > Hi there, > > This seems like it should be simple. I have a data frame of climate data > sampled every 10 min. I want to average the entire data frame into 30 > min values (i.e., one value for each half hour). Functions like > running.mean give me a moving average but I want to reduce the size of > the entire frame.. Any ideas how? Cheers! > > Example of my data > > timestamp Voltage LwTempDownelling LwDownwelling LwDownwelling_min > LwDownwelling_max LwTempUpwelling > 1 2011-11-01 00:00:00 2.732447 17.30 30.0 > 14.0 39.5 17.83 > 2 2011-11-01 00:10:00 2.731534 17.46 15.3 > 11.1 24.6 17.95 > 3 2011-11-01 00:20:00 2.731368 17.43 28.7 > 24.6 30.7 17.93 > 4 2011-11-01 00:30:00 2.730703 17.36 40.4 > 29.8 43.5 17.86 > 5 2011-11-01 00:40:00 2.729567 17.26 41.6 > 40.5 42.6 17.76 > 6 2011-11-01 00:50:00 2.728976 17.16 39.7 > > > -M.B > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > 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. -- Jim Holtman Data Munger Guru What is the problem that you are trying to solve? Tell me what you want to do, not how you want to do it. ______________________________________________ R-help@r-project.org mailing list 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.