[R-SIG-Finance] Dates not formatting properly for quarterly time series in xtsExtra

R. Michael Weylandt michael.weylandt at gmail.com
Tue Jan 7 04:10:00 CET 2014


On Mon, Jan 6, 2014 at 7:25 PM, Eric Zivot <ezivot at u.washington.edu> wrote:
> I have been working on some examples of plotting time series for my new book
> Modeling Financial Time Series with R and I noticed something funny with
> plot.xts() from the R package xtsExtra when trying to plot quarterly time
> series created from the xts function to.quarterly. Here is an example:
>
>> sessionInfo()
>
> R version 3.0.2 (2013-09-25)
>
> Platform: x86_64-w64-mingw32/x64 (64-bit)
>
>> getSymbols("GS")
>
>> GS.Ad.xts = Ad(GS)
>> GS.Ad.quarterly.xts = to.quarterly(GS.Ad.xts, OHLC=FALSE)
>> periodicity(GS.Ad.quarterly.xts)
> Quarterly periodicity from 2007 Q1 to 2014 Q1
>> # Error in axis format for time plot
>> plot(GS.Ad.quarterly.xts, lwd=2, col="blue")
>
> In the resulting plot, the format for the axis is not correct. Instead of
> showing the date as "Q1 2007", I see "%b 2007".

Hi Professor,

Thanks for the great bug report. Very easy to track down exactly what happened.

The issue is in xts, not xtsExtra: specifically, the axTicksByTime() function.

> axTicksByTime(GS.Ad.quarterly.xts)[1:5]
%n%b%n2007 %n%b%n2007 %n%b%n2007 %n%b%n2007 %n%b%n2008
         1          2          3          4          5

(I'm on a Unix system, hence the extra %n symbols)

Looking at the source of axTicksByTime, one sees that the default
formatting is "%b %Y" but that weekly, daily, minutely [1], hourly,
secondly [1] periodicities are special-cased.

Unfortunately, the "yearqtr" index object doesn't have anything which
can be formatted at %b (month name in English in ?strptime), so the %b
remains, giving the ugly axes you see.

Adding this line to the source of axTicksByTime (say around L40) should fix it:

if(time.scale == "quarterly") fmt <- "%Y-Q%q"

I've pushed a commit to r-forge which adds this to a copy of
axTicksByTime in xtsExtra which should fix it temporarily [r800]. I'll
speak to Josh about putting in xts-proper.

Hope it helps,
Michael

[1] Neither of those actually seem like the right word.

>
> Also, I notice a strange error related to timezones.
>
I think this is just a warning (at least on my system): shouldn't be a
problem if you're on daily-or-lower data.

>
>
>> Sys.timezone()
> [1] "PST"
>
>
>
> Do I have to change my system timezone to UTC prior to downloading the data
> to get rid of this error?
>
> Thanks for any help.
>



More information about the R-SIG-Finance mailing list