[R] Define a variable on a non-standard year interval (Water Years)

MacQueen, Don macqueen1 at llnl.gov
Mon Jun 11 21:56:18 CEST 2012


Here's one way.
(not including the conversion to factor)

wdf <- data.frame(Date=seq(as.Date("2000/10/1"), as.Date("2003/9/30"),
"days"))


wdf$wyr <- as.numeric(format(wdf$Date,'%Y'))
is.nxt <-  as.numeric(format(wdf$Date,'%m')) %in% 1:9
wdf$wyr[ is.nxt ] <- wdf$wyr[is.nxt]-1

## and you can do some rudimentary checking with:
table(format(wdf$Date,'%Y'), wdf$wyr)

Note that df is the name of an R-supplied function and therefore not a
good choice for one's own use.


(By the way, thank you for providing easy to recreate example data.
As a minor point, this:
wdf <- data.frame(Date=seq(as.Date("2000/10/1"),
                           as.Date("2003/9/30"),
                           "3 weeks"))
would be just a little easier to work with for testing)



-- 
Don MacQueen

Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062





On 6/11/12 10:22 AM, "Sam Albers" <tonightsthenight at gmail.com> wrote:

>Hello,
>
>I am trying to define a different interval for a "year". In hydrology,
>a "water year" is defined as the period between October 1st and
>September 30 of the following year. I was wondering how I might do
>this in R. Say I have a data.frame like the following and I want to
>extract a variable with the water year specs as defined above:
>
>df<-data.frame(Date=seq(as.Date("2000/10/1"), as.Date("2003/9/30"),
>"days"))
>
>## Extract the normal year
>df$year <- factor(format(as.Date(df$Date), "%Y"))
>
>So the question is how might I define a variable that extends from
>October 1st to September 30th rather than the normal January 1st to
>December 31st?
>
>Thanks in advance!
>
>Sam
>
>______________________________________________
>R-help at 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.



More information about the R-help mailing list