[Rd] Weird issue when iterating through dates
Joshua Ulrich
josh.m.ulrich at gmail.com
Wed Aug 12 18:06:42 CEST 2015
On Wed, Aug 12, 2015 at 10:55 AM, Gábor Csárdi <csardi.gabor at gmail.com> wrote:
> I am not sure if this is a bug or not.
>
I would argue that this isn't a bug, not even in the documentation of
"for" (even though it might be clearer). ?"for" says that `seq` is
"[A]n expression evaluating to a vector (including a list and an
expression) or to a pairlist or 'NULL'". Date objects aren't strictly
vectors, so they're treated as integer/numeric.
This answer on StackOverflow said that "for" does not copy any of the
iterators attributes (including class), which causes this behavior.
http://stackoverflow.com/a/23278464/271616
To respond to the original question regarding why the code below,
"prints the dates as a string". Quite simply, you convert seq(d1,d2,
by=1) to character, so it's no longer a Date. The fact that
Sys.Date() and as.character(Sys.Date()) both *print* the same thing
does not mean they are the same.
for ( dt in as.character(seq(d1,d2, by=1)) ) {
print(dt)
}
Best,
Josh
> Gabor
>
> On Wed, Aug 12, 2015 at 11:51 AM, Luca Cerone <luca.cerone at gmail.com> wrote:
>> Following up on this, should I report a bug? can you drive me through
>> the process?
>>
>> Cheers,
>> Luca
>>
>> On Thu, Aug 6, 2015 at 4:55 PM, William Dunlap <wdunlap at tibco.com> wrote:
>>>>> Just a quick question: what's the difference between `[.Date` and
>>>>> `[[.Date`?
>>>>> Is it supposed to be the method for accessing the value right?
>>>>
>>>>For Dates and atomic vectors in general they are the same, but ...
>>>
>>> Even for atomic vectors with names they are not quite the same
>>> > c(One=1, Two=2)[[2]]
>>> [1] 2
>>> > c(One=1, Two=2)[2]
>>> Two
>>> 2
>>> (and [[ will only return 1 item, unlike [).
>>>
>>>
>>> Bill Dunlap
>>> TIBCO Software
>>> wdunlap tibco.com
>>>
>>> On Thu, Aug 6, 2015 at 5:36 AM, Gábor Csárdi <csardi.gabor at gmail.com> wrote:
>>>>
>>>> On Thu, Aug 6, 2015 at 6:30 AM, Luca Cerone <luca.cerone at gmail.com> wrote:
>>>> [...]
>>>> > Just a quick question: what's the difference between `[.Date` and
>>>> > `[[.Date`?
>>>> > Is it supposed to be the method for accessing the value right?
>>>>
>>>> For Dates and atomic vectors in general they are the same, but in
>>>> general they are two different operators that behave differently on
>>>> some data types. E.g. on lists [ selects a sub-list and [[ selects a
>>>> single element.
>>>>
>>>> Gabor
>>>>
>>>> [...]
>>>>
>>>> ______________________________________________
>>>> R-devel at r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>>>
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
--
Joshua Ulrich | about.me/joshuaulrich
FOSS Trading | www.fosstrading.com
More information about the R-devel
mailing list