Unexpected behaviour for as.date()
G'day Isabella, On Tue, 10 Nov 2009 18:40:11 -0800
"Isabella Ghement" <isabella at ghement.ca> wrote:
I am trying to use the function as.date() from the "dates" package
As far as I can tell, there is no package called "dates", did you mean the package "date"?
in R 2.10.0 to convert a character date to a Julian date, as follows:
as.date("02-MAY-01", order="mdy") # convert May 2, 2001 to a Julian
date
[1] 2May1
Are you sure that you are doing what your comments imply? Try:
R> library(date)
R> as.date("02-MAY-01", order="mdy")
[1] 2May1
R> as.date("02-MAY-2001", order="mdy")
[1] 2May2001
R> as.numeric(as.date("02-MAY-01", order="mdy"))
[1] -21428
R> as.numeric(as.date("02-MAY-2001", order="mdy"))
[1] 15097
However, when trying to convert a character date from the year 2000 to a Julian date, I get an <NA> instead of the desired Julian date:
as.date("02-MAY-00", order="mdy") # convert May 2, 2000 to a Julian
date
[1] <NA> Not quite sure why R is unable to handle this type of date (perhaps it thinks it comes from the year 1900?!).
My guess it thinks it comes from the year 0. Not sure why it cannot handle such dates. But then, as far as I know, there is actually some discussion about whether the year 0 exist or whether we went straight from 1BC to 1AD......
Is there a way to force R to convert character dates from the year 2000 into Julian dates?
Presumably you will need something like:
R> as.date(sub("-00", "-2000", "02-MAY-00"))
[1] 2May2000
HTH.
Cheers,
Berwin
========================== Full address ============================
Berwin A Turlach Tel.: +61 (8) 6488 3338 (secr)
School of Maths and Stats (M019) +61 (8) 6488 3383 (self)
The University of Western Australia FAX : +61 (8) 6488 1028
35 Stirling Highway
Crawley WA 6009 e-mail: berwin at maths.uwa.edu.au
Australia http://www.maths.uwa.edu.au/~berwin