[R] Mystified - comparing chron times
David Winsemius
dwinsemius at comcast.net
Fri Sep 16 16:58:37 CEST 2011
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 <mebstyne at 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 at 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.
>>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Mystified-comparing-chron-times-tp3817855p3818176.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at 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.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list