Not that anything more needs to be said ... it doesn't, not really ... But I think that in cases like this it is helpful to use the digits arg to print(). It probably would have shown in a simple way that the two numeric versions aren't really equal -- and demonstrated a little about R's default printing convention.
> print( pi, digits=3) [1] 3.14 > print( pi, digits=12) [1] 3.14159265359 -Don -- Don MacQueen Lawrence Livermore National Laboratory 7000 East Ave., L-627 Livermore, CA 94550 925-423-1062 On 9/16/11 9:30 AM, "Sarah Goslee" <sarah.gos...@gmail.com> wrote: >I'll freely admit that I know little about chron and didn't have a >computer with R in >front of me at the time. > >But the original querent converted the chron times to numeric and then >used ==, >and thus it became a 7.31 issue. Converting to character is a different >way to >approach the problem; which is "better" depends on more context than we >have available, as David points out. > >Sarah > >On Fri, Sep 16, 2011 at 10:58 AM, David Winsemius ><dwinsem...@comcast.net> wrote: >> >> On Sep 16, 2011, at 10:08 AM, B77S wrote: >> >>> I'm sure Sarah's solution works (and she knows more about R than >>>myself), >>> but >>> I ran into a similar problem and used: >>> as.character(start.time)==as.character(expected_start.time) >> >> What you did was an implicit rounding of the values to the digits level >> specified by some process, possibly a default formatting spec, guessing >>to >> round(num, 7) . I tried to see whether package chron might specify i,t >>but >> this effort only produced this >> >>> cur.opts <- names(options()) >>> require(chron) >> Loading required package: chron >>> names(options())[!names(options()) %in% cur.opts] >> [1] "chron.year.abb" "chron.year.expand" >> >> What Sarah suggested was essentially rounding to 16 digits to the right >>of >> the decimal. >> >> If the OP had offered dput() on these objects, there would have been a >>lot >> less guessing. >> >> -- >> David >> >>> >>> good luck regardless. >>> >>> -BS >>> >>> >>> Sarah Goslee wrote: >>>> >>>> Sounds like a case for FAQ 7.31, or, yet another machine precision >>>>issue. >>>> Try all.equal() instead of == >>>> >>>> Sarah >>>> >>>> On Fri, Sep 16, 2011 at 7:36 AM, mebstyne <mebst...@me.com> >>>>wrote: >>>>> >>>>> I have two local variables: startTime and expectedStartTime. Both >>>>>are >>>>> chron >>>>> related objects. >>>>> When I look at the class for the objects I can see they are of class >>>>> "times". >>>>> When I print them to the console, they both read: "09:30:00" >>>>> When I print them as.numeric(), they both read: 0.3958333 >>>>> When I try and compare them: (as.numeric(startTime) == >>>>> as.numeric(expectedStartTime)) it returns FALSE. >>>>> >>>>> I'm mystified. I would expect them to be true. >>>>> Perhaps a key to the riddle is how the two objects were created. >>>>> >>>>> "startTime" was created by reading a text field from a socket, >>>>> converting >>>>> it >>>>> into a chron object using chron(x, "%m/$d/%Y %H:%M:%S"), then >>>>>finally I >>>>> created a time out of the chron by doing a quick butchering of the >>>>> "integer" >>>>> portion of the numeric: (times(as.numeric(x) - as.integer(x)) >>>>> >>>>> "expectedStartTime" was created by the command times('09:30:00') >>>>> >>>>> Any suggestions? Tips? Alternative approaches? I've pulled too >>>>>many >>>>> hairs >>>>> triaging this. >>>>> All hands welcomed on this little challenge. >>>>> >>>>> Big picture goal of what I'm doing: I have a list of chron objects >>>>>with >>>>> both >>>>> dates and times portion filled out and I'm trying to determine if the >>>>> time >>>>> is a specific time (specific to the minute). >>>>> >>>>> Thanks! >>>>> >>>>> -Michael >>>>> >>>> > > >-- >Sarah Goslee >http://www.functionaldiversity.org > >______________________________________________ >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.