[R] julian
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Sat May 14 14:44:07 CEST 2005
Rolf Turner <rolf at math.unb.ca> writes:
> I have a problem wherein I need to convert back and forth from
> dates of the form "2000-04-11" to Julian dates. After some
> experimentation I found that
>
> > z <- strptime("2000-62",format="%Y-%j")
> > z
>
> gave me "2000-03-02" --- i.e. March 2 which is as it should be
> according to my (not too reliable) arithmetic.
>
> Going the other direction, more experimentation led me to
>
> > julian(z,origin=as.POSIXct("1999-12-31"))
>
> which gives
>
> Time difference of 62 days
>
> and I thought that I had a working (if not fully comprehended)
> syntax. My illusions were shattered when I tried another Julian
> date, 102:
>
> > z <- strptime("2000-102",format="%Y-%j")
> > z
>
> gives "2000-04-11" --- i.e. April 11, which checks with what I think
> it should be. But reversing the direction:
>
> > julian(z,origin=as.POSIXct("1999-12-31"))
>
> gives
>
> Time difference of 101.9583 days
>
> Where did the missing 0.0417 days go to?
Into the daylight savings account, I guess.
> What syntax should I really be using?
It's not the syntax as much as the timezone. But what has as.Date done
wrong, since you seem set on ignoring it?
> as.Date(z) - as.Date("1999-12-31")
Time difference of 102 days
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list