(Resend: was meant for R-devel, not just Joshua) > On Wed, Aug 12, 2015 at 10:55 AM, Gábor Csárdi <csardi.ga...@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 Thank you, Joshua. Definitely no bug ... but possibly something where the documentation (== the help page, not Google, not Stackoverflow, ... ;-\ ) can be improved. Indeed, one could add what ``evaluating to a vector'' means; I don't have time now, but am almost sure that we could state that for(n in obj) { ... } should be semantically equivalent to for(n in as.vector(obj)) { ... } but there may be subtleties here.... --> posting back to R-devel so people can experiment if the above is true, and if not *where*. Martin > > Gabor > > > > On Wed, Aug 12, 2015 at 11:51 AM, Luca Cerone <luca.cer...@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 <wdun...@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.ga...@gmail.com> > >>> wrote: > >>>> > >>>> On Thu, Aug 6, 2015 at 6:30 AM, Luca Cerone <luca.cer...@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 > >>>> > >>>> [...] > -- > Joshua Ulrich | about.me/joshuaulrich > FOSS Trading | www.fosstrading.com > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel