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.