R Create function to add water year column

前端 未结 2 666
被撕碎了的回忆
被撕碎了的回忆 2020-12-17 06:09

I want to be able to create a water year column for a time series. The US water year is from Oct-Sept and is considered the year it ends on. For example the 2014 water yea

2条回答
  •  清歌不尽
    2020-12-17 06:47

    We can use POSIXlt to come up with an answer.

    wtr_yr <- function(dates, start_month=9) {
      # Convert dates into POSIXlt
      dates.posix = as.POSIXlt(dates)
      # Year offset
      offset = ifelse(dates.posix$mon >= start_month - 1, 1, 0)
      # Water year
      adj.year = dates.posix$year + 1900 + offset
      # Return the water year
      adj.year
    }
    

    Let's now use this function in an example.

    # Sample input vector
    dates = c("2008-01-01 00:00:00",
    "2008-02-01 00:00:00",
    "2008-03-01 00:00:00",
    "2008-04-01 00:00:00",
    "2009-01-01 00:00:00",
    "2009-02-01 00:00:00",
    "2009-03-01 00:00:00",
    "2009-04-01 00:00:00")
    
    # Display the function output
    wtr_yr(dates, 2)
    
    # Combine the input and output vectors in a dataframe
    df = data.frame(dates, wtr_yr=wtr_yr(dates, 2))
    

提交回复
热议问题