[R] Adding a year to existing date
Rolf Turner
rolf.turner at xtra.co.nz
Thu Nov 17 09:11:22 CET 2011
On 17/11/11 17:33, arunkumar1111 wrote:
> Hi
>
> I need to add an year to and date field in the dataframe.
>
> Please help me
>
> X Date
> 1 2008-01-01
> 2 2008-02-01
> 3 2003-03-01
I can't find anything built in. This is probably because "year" is an
ill-defined
unit; years vary in length in a somewhat peculiar fashion. So doing
arithmetic
with respect to years is frowned on.
However you might try this:
`%+%` <- function(x,y){
if(!isTRUE(all.equal(y,round(y)))) stop("Argument \"y\" must be an
integer.\n")
x <- as.POSIXlt(x)
x$year <- x$year+y
as.Date(x)
}
Then:
xxx <- as.Date(c("2008-01-01","2008-02-01","2003-03-01"))
xxx %+% 1
[1] "2009-01-01" "2009-02-01" "2004-03-01"
Dunno what dangers lurk; caveat utilitor.
cheers,
Rolf Turner
More information about the R-help
mailing list