On Fri, Dec 10, 2010 at 10:27 AM, Daniel Brewer <daniel.bre...@icr.ac.uk> wrote: > Hello, > > I have some data that has dates in the form 27.02.37. I convert them to > a date object as follows: > as.Date(data$date,format="%d.%m.%y") > > But this gives me years such as 2037 when I would like them to be 1937. > I thought of trying to take off some time i.e. > as.Date(camCD$DoB,format="%d.%m.%y") - 100*365 > But that doesn't seem to work out correctly. Any ideas how to do this? >
The easiest is just to use chron dates since it uses a cut.off of 30 by default. That is, if yy is less than that then 2000+yy is used and if greater than that then 1900+yy is used. Thus try this: library(chron) d <- "27.02.37" as.Date(dates(d, format = "d.m.y")) # "1937-02-27" as.Date(d, format = "%d.%m.%y") # "2037-02-27" Also if that is not good enough and you want a different value for the cut.off then note that the default in chron is to use the year.expand function to expand two digit dates but you can change that via something like this: options(chron.year.expand = function(..., cut.off = 25) year.expand(..., cut.off = cut.off)) -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ 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.