[Rd] Weird issue when iterating through dates

Luca Cerone luca.cerone at gmail.com
Thu Aug 6 12:30:10 CEST 2015


Thanks Gàbor,
I thought there was some mistake in my logic on how casting works in R
and wanted to be sure.

Just a quick question: what's the difference between  `[.Date` and  `[[.Date`?
Is it supposed to be the method for accessing the value right?

Thanks again for your help,
Cheers,
Luca

On Thu, Aug 6, 2015 at 10:10 AM, Gábor Csárdi <csardi.gabor at gmail.com> wrote:
> Date has a `[.Date` method and also `[[.Date`, but it looks like a for
> loop does not consider the class of the object you are iterating over,
> so these are ignored and the internal representation is used.
>
> I think this is a bug, at least in the documentation of ?"for".
>
> Interestingly, lapply and co. do consider the class:
>
> invisible(lapply(seq(d1, d2, by = 1), print))
>
> works as you would expect. (The invisible() is to suppress printing
> the return value.)
>
> Gabor
>
> On Thu, Aug 6, 2015 at 3:24 AM, Luca Cerone <luca.cerone at gmail.com> wrote:
>> Dear all,
>> I am experiencing a weird issue when iterating through dates in R
>> (3.1.2 and 3.2.1 on 64bit linux machines)
>>
>> I am bit surprised about the behaviour of this snippet of code:
>>
>> d1 <- as.Date('2015-01-01')
>> d2 <- as.Date('2015-01-31')
>>
>> for ( dt in seq(d1,d2, by=1) ) {
>>   dt <- as.character(dt)
>>   print(dt)
>> }
>>
>> for ( dt in as.character(seq(d1,d2, by=1)) ) {
>>   print(dt)
>> }
>>
>> I can't find a good explanation why the first for loop would convert
>> to string the numeric interpretation
>> of the dates while the second one correctly (at least in my
>> intentions) prints the dates as string.
>>
>> I am sure that it is not a bug in R but I would like to understand why
>> I am getting different outputs from the two for loops.
>>
>> Thanks a lot in advance for your help!
>>
>> Cheers,
>> Luca
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list