[R] Regarding as. Date function

David Winsemius dwinsemius at comcast.net
Mon Nov 21 06:17:25 CET 2011


On Nov 20, 2011, at 10:46 PM, Shant Ch wrote:

>
> Hi all,
>
>
>
> I have a data set
> containing dates in the format of m/d/y starting from 1950. I wanted  
> to
> use standard format of date R uses. So I read the data set in R and
> converted it using as.Dates. But for dates from 1950-1968, I have the
> following problem.
>
> as.Date("1/1/50","%m/%d/%y",origin="1900/01/01") ="2050-01-01"  
> instead of "1950-01-01"
>
> But for dates 1969 onwards it is working fine.

As is documented in ?strptime

%y
Year without century (00–99). On input, values 00 to 68 are prefixed  
by 20 and 69 to 99 by 19 – that is the behaviour specified by the 2004  
and 2008 POSIX standards, but they do also say ‘it is expected that in  
a future version the default century inferred from a 2-digit year will  
change’.



>
> as.Date("1/1/69","%m/%d/%y") = "1969-01-01"
>
Perhaps some greppingg surgery?

 > as.Date(sub("(.+/.+/)([0-6])", "\\119\\2", "1/1/69"),"%m/%d/%Y")
[1] "1969-01-01"

You have not really described the problem completely .... what is the  
range of dates we need to work with?  Do you have any "1/1/05"  type  
values and if so what century should be assumed?

>
> Can anyone please help me find out the problem?
>
> Thanks
> Shant
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list