This is one way: df<- data.frame(Time=as.POSIXct("2009-01-01", format="%Y-%m-%d") + seq(0, 60*60*24*365-1, 60*60), lev.morgan=3+runif(24*365), lev.lock2=3+runif(24*365), flow=1000+rnorm(24*365, 200), direction=runif(24*365, 0, 360), velocity=runif(24*365, 0, 10)) (df2<- aggregate(df[ , -1], list(date=as.Date(df$Time)), FUN=mean, na.rm=TRUE))
Hope this helps Allan On 15/07/10 05:52, Meissner, Tony (DFW) wrote: > I have a data frame (morgan) of hourly river flow, river levels and wind > direction and speed thus: > Time hour lev.morgan lev.lock2 lev.lock1 flow direction > velocity > 1 2009-07-06 15:00:00 15 3.266 3.274 3.240 1710.6 180.282 > 4.352 > 2 2009-07-06 16:00:00 16 3.268 3.272 3.240 1441.8 192.338 > 5.496 > 3 2009-07-06 17:00:00 17 3.268 3.271 3.240 1300.1 202.294 > 2.695 > 4 2009-07-06 18:00:00 18 3.267 3.274 3.241 1099.1 237.161 > 2.035 > 5 2009-07-06 19:00:00 19 3.265 3.277 3.243 986.6 237.576 > 0.896 > 6 2009-07-06 20:00:00 20 3.266 3.281 3.242 1237.6 205.686 > 1.257 > 7 2009-07-06 21:00:00 21 3.267 3.280 3.242 1513.3 26.080 > 0.664 > 8 2009-07-06 22:00:00 22 3.267 3.281 3.242 1819.5 264.280 > 0.646 > 9 2009-07-06 23:00:00 23 3.267 3.281 3.242 1954.4 337.137 > 0.952 > 10 2009-07-07 00:00:00 0 3.267 3.281 3.242 1518.9 260.006 > 0.562 > 11 2009-07-07 01:00:00 1 3.267 3.281 3.242 1082.6 252.172 > 0.673 > 12 2009-07-07 02:00:00 2 3.267 3.280 3.243 1215.9 190.007 > 1.286 > 13 2009-07-07 03:00:00 3 3.267 3.279 3.244 1093.5 260.415 > 1.206 > : : : : : : : : > : > : : : : : : : : > : > > Time is of class POSIXct > I wish to take daily means of the flow, levels, and wind parameters and put > them into a new dataframe. I envisage doing this with the following example > code: > > morgan$fTime<- factor(substr(as.character(morgan$Time),1,10)) > dflow<- tapply(morgan[,"flow"], morgan$fTime, mean) > day<- tapply(morgan[,"Time"], morgan$fTime, mean) > : > : > > daily<- as.data.frame(cbind(day,dflow, dlev.morg,dlev.lock2, ...)) > daily$day<- with(daily, as.POSIXct("1970-01-01", "%Y-%m-%d", > tz="Australia/Adelaide") + day) > rownames(daily)<- NULL > > Is there a more efficient way of doing this? I am running R-2.11.0 under > Windows XP > > Tschüà > Tony Meissner > Principal Scientist (Monitoring) > Resources Monitoring Group > Science, Monitoring and Information Division > Department for Water > "Imagine" © > *(ph) (08) 8595 2209 > *(mob) 0401 124 971 > *(fax) (08) 8595 2232 > * 28 Vaughan Terrace, Berri SA 5343 > PO Box 240, Berri SA 5343 > DX 51103 > ***The information in this e-mail may be confidential and/or legally > privileged. Use or disclosure of the information by anyone other than the > intended recipient is prohibited and may be unlawful. If you have received > this e-mail in error, please advise by return e-mail or by telephoning +61 8 > 8595 2209 > > > > > [[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. > [[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.