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]]
>
>
>
>
> ______________________________________________
> [email protected] 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]]
______________________________________________
[email protected] 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.