[R] Handling dates
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Fri Aug 19 13:35:45 CEST 2005
Göran Broström <gb at stat.umu.se> writes:
> I have a problem with some functions handling dates, in packages 'date' and
> 'survival' (they seem to be identical). For instance, from the documentation,
>
> --------------------
> mdy.date {survival}
>
> R Documentation
>
> Convert to Julian Dates
>
> Description
>
> Given a month, day, and year, returns the number of days since January 1, 1960.
> Usage
>
> mdy.date(month, day, year, nineteen = TRUE, fillday = FALSE,
> fillmonth = FALSE)
> ----------------------------
> but
>
> > library(survival)
> > mdy.date(12, 1, 1977)
> [1] 1Dec77
>
> Similar strange results appear in other date-related functions. I plan to
> write functions that converts, eg, "1977-01-31" to the real number 1977.084
> and back. What function in R does what 'mdy.date' claims to do?
mdy.date does ...
> dput(mdy.date(12, 1, 1977))
structure(6544, class = "date")
> mdy.date(1, 31, 1977)/365.2425+1960 # or /365.25 if you really want 1977.084
[1] 1977.085
But with recent R's, as.Date is a better bet:
> c(as.Date("1977-01-31") - as.Date("0000-01-01"))/365.2425
[1] 1977.084
(notice that you need the c() to avoid the nonsense of
> (as.Date("1977-01-31") - as.Date("0000-01-01"))/365.2425
Time difference of 1977.084 days
)
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list