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

______________________________________________
R-help@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.

Reply via email to