Very helpful, thanks!

Andreas

On 3/24/2012 10:57 AM, R. Michael Weylandt wrote:
It might be easier to just work with a character representation rather
than fighting the floating point demons:

fnc<- function(date){
     as.Date(paste(date, "01", sep = "."), format = "%Y.%m.%d")
}

Hope that helps,

Michael

On Sat, Mar 24, 2012 at 10:47 AM, Andreas Eckner<andr...@eckner.com>  wrote:
Thanks for the help. A workaround seems indeed easy to write, for example,
by rounding the the value of 'm' inside chron:::julian.default(), or only
passing integers to the function.

I never intended to use a case involving a quadrillionth of a day, but
encountered the problem when converting a dates in YYYY.MM format to a CHRON
object. Here is an example for future reference (the output might be highly
system-dependent):

   library(chron)
   date<- 2012.02
   y<- floor(date)
   m<- (date %% 1) * 100
   julian(2, 1, 2012) - julian(m, 1, y)
[1] 1

~Andreas

P.S.: I have included Kurt Hornik on the email.

On 3/23/2012 10:52 PM, R. Michael Weylandt wrote:
julian() is in the package base. chron only provides julian.default to
avoid the error Uwe observed. If you look at the code for
julian.default, it's not too hard to see why date will be slightly
more sensitive to "numeric fuzz"....whether that's intentional (or
even a good/bad thing) is somewhat hard to say, but I'd guess the
maintainer didn't really consider a use case involving one
quadrillionth of a day.

Is it problematic for you? If so, a workaround is not hard to provide

Michael

On Fri, Mar 23, 2012 at 4:17 PM, Andreas Eckner<andr...@eckner.com>
  wrote:
Sorry, forgot to mention: R version 2.14.2

The function julian() is part of the "chron" package of the base
distribution.

On 3/23/2012 2:47 PM, Uwe Ligges wrote:
On 23.03.2012 15:45, Andreas Eckner wrote:
Hi,

does anybody know if the following behavior of julian() is intentional?

julian(2, 1, 2012) - julian(2 - 1e-15, 1, 2012)
[1] 1
julian(2, 1, 2012) - julian(2, 1 - 1e-15, 2012)
[1] 0
julian(2, 1, 2012) - julian(2, 1, 2012 - 1e-15)
[1] 0

In other words, julian() is subject to numerical noise in the 'day'
argument, but not in the 'month' and 'year' argument? Another example:

julian(2 - 1e-15, 1, 2012) - julian(1 - 1e-15, 1, 2012)
[1] 30


Which vbersion of R are you talking about?

I get:

julian(2, 1, 2012) - julian(2 - 1e-15, 1, 2012)
Error in UseMethod("julian") :
  no applicable method for 'julian' applied to an object of class
"c('double', 'numeric')"


Uwe Ligges


Thanks,
Andreas

______________________________________________
R-help@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.


______________________________________________
R-help@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.



______________________________________________
R-help@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.

Reply via email to