[R] Rounding in date.mdy from library(date)
BXC (Bendix Carstensen)
BXC at novo.dk
Mon Jan 3 10:08:34 CET 2000
The date library contains a function date.mdy that converts a number
D to the date (month,date,year as a list) at D days after 1 Jan 1960.
This a convention that fits in with SASs.
The logic would be that the result was the date at D days after
1 Jan 1960 00:00:00 (which is a POINT in time as opposed to a date which
is an interval), so that any D with 2<=D<3 was rounded to 3 Jan 1960
and so on. This is because at any time D days (i.e. D*24h) after
1.1.1960:00:00 with 2<=D<3 we would call the date "3 Jan 1960".
I cannot decipher the algorithm from the code in the function, but the
rounding procedure certainly produces some funny results, as the following
piece of clumsy code demonstrates:
dex <- function(jul.dat,N=1000)
{
# Functions that finds the fraction to add to a number
# to make the date.mdy round upwards (should be 1)
(0:N)[(abs(diff(date.mdy(jul.dat+0:N/N)$day))>0.5)]/N
}
jd <- 0:200 * 300
rf <- 0
for (i in 1:201) rf[i] <- dex(jd[i])
plot(jd,rf,pch=".")
The obvous workaround would be to mask date.mdy by:
real.date.mdy <- function(jd) date.mdy(floor(jd))
Is this an error or is there a feature somewhere that I am missing?
Bendix Carstensen
\\\|///
\\ - - /
( @ @ )
+------------------o00o-(_)-o00o-------------------------+
| Bendix Carstensen tel: +45 44 43 87 38 |
| Senior Statistician SDC: +45 44 43 90 42 |
| Steno Diabetes Center fax: +45 44 43 73 13 |
| Niels Steensens Vej 2 e-mail: bxc at novo.dk |
| DK - 2820 Gentofte http://www.biostat.ku.dk/~bxc |
| Denmark Ooooo |
+------------------ooooO----( )------------------------+
( ) ) /
\ ( (_/
\_)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list