[R] Aggregating on Water Year Rather Than Calendar Year

Don MacQueen macq at llnl.gov
Wed Jun 16 22:57:54 CEST 2004

It's not clear where your problem is.

Did w$w.year come out wrong?
Or did the aggregate() function fail?

For getting the water year, I would do it differently:
  (this is for a U.S. English locale, and minimally tested)

    tmp <- as.POSIXlt(w$d)$year+1900
    w$w.year <- ifelse( format(w$d,'%b') %in% c('Oct','Nov','Dec'), tmp+1, tmp)

Then you can do things like
to help find out if w.year came out like it should.

You'll have to provide error messages or something if the problem is 
with using aggregate().

At 11:21 AM -0700 6/16/04, Clint Bowman wrote:
>The US water year extends from 01 October yyyy-1 through 30 September yyyy
>and is referenced by the year starting on the included 01 January yyyy. 
>I'd like to be able to find the annual means for the water year.  To do so
>I've taken the input date-time, which is in the usual format
>"1991-10-07 10:35:00"
>changed it by:
>Now I can add an offset of 92 days

Try   w$w.year <- w$d+7948800

>and have the years correspond to the "water year."
>Now I wish to obtain some means by something like:
>Except that I need to work on the year and being a neophyte in date
>arithmetic I'm not finding a working method.
>Clint Bowman			INTERNET:	clint at ecy.wa.gov
>Air Quality Modeler		INTERNET:	clint at math.utah.edu
>Department of Ecology		VOICE:		(360) 407-6815
>PO Box 47600			FAX:		(360) 407-7534
>Olympia, WA 98504-7600


Don MacQueen
Environmental Protection Department
Lawrence Livermore National Laboratory
Livermore, CA, USA

More information about the R-help mailing list