title: quantmod::chart_Series() bug?
body: <p>I would like to chart SPX using quantmod::chart_Series() and below draw changes in GDP and 12 month SMA of changes of GDP. No matter how I try to do it (what combinations I use) eithe errors occur or quantmod::chart_Series() displays just partial plot.</p>
  
  <pre><code>require(quantmod)
  
  FRED.symbols &lt;- c("GDPC96")
  
  getSymbols(FRED.symbols, src="FRED")
  SPX &lt;- getSymbols("^GSPC", auto.assign=FALSE, from="1900-01-01")
  
  subset="2000/"
  
  chart_Series(SPX, subset=subset)
  add_TA(GDPC96)
  add_TA(ROC(GDPC96, type="discrete"))
  add_TA(SMA(ROC(GDPC96, type="discrete"), n=4), on=3, col="blue")
  </code></pre>
  
  <p>EDIT: Actually, it seems to me that this is a quantmod::chart_series() problem when using quarterly data:</p>
  
  <pre><code>subset &lt;- "2000/"
  chart_Series(to.quarterly(SPX, drop.time=TRUE), subset=subset)
  add_TA(SMA(Cl(to.quarterly(SPX, drop.time=TRUE))))
  
  &gt; subset &lt;- "2000/"
  &gt; chart_Series(to.quarterly(SPX, drop.time=TRUE), subset=subset)
  &gt; add_TA(SMA(Cl(to.quarterly(SPX, drop.time=TRUE))))
  Error in xy.coords(x, y) : 'x' and 'y' lengths differ
  In addition: Warning messages:
  1: In as_numeric(H) : NAs introduced by coercion
  2: In as_numeric(H) : NAs introduced by coercion
  3: In as_numeric(H) : NAs introduced by coercion
  </code></pre>
  
  <p>This does produce SPX plot on main panel, but leaves empty second and third panel.
  Then I tried to play around with having same index on data, same lengths etc.</p>
  
  <pre><code>chart_Series(head(to.quarterly(SPX, drop.time="TRUE"), -1), subset=subset)
  add_TA(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE))
  add_TA(ROC(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE), type="discrete"))
  add_TA(SMA(ROC(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE), type="discrete"),    n=4), on=3, col="blue")
  </code></pre>
  
  <p>And result is errors all over:</p>
  
  <pre><code>&gt; chart_Series(head(to.quarterly(SPX, drop.time="TRUE"), -1), subset=subset)
  &gt; add_TA(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE))
  Error in xy.coords(x, y) : 'x' and 'y' lengths differ
  In addition: Warning messages:
  1: In as_numeric(H) : NAs introduced by coercion
  2: In as_numeric(H) : NAs introduced by coercion
  3: In as_numeric(H) : NAs introduced by coercion
  &gt; add_TA(ROC(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE), type="discrete"))
  Error in xy.coords(x, y) : 'x' and 'y' lengths differ
  In addition: Warning messages:
  1: In as_numeric(H) : NAs introduced by coercion
  2: In as_numeric(H) : NAs introduced by coercion
  3: In as_numeric(H) : NAs introduced by coercion
  &gt; add_TA(SMA(ROC(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE), type="discrete"), n=4), on=3, col="blue")
  Error in xy.coords(x, y) : 'x' and 'y' lengths differ
  In addition: Warning messages:
  1: In as_numeric(H) : NAs introduced by coercion
  2: In as_numeric(H) : NAs introduced by coercion
  3: In as_numeric(H) : NAs introduced by coercion
  </code></pre>
  
  <p>Using</p>
  
  <pre><code>tail(to.quarterly(SPX, drop.time="TRUE"))
  tail(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE))
  tail(ROC(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE), type="discrete"))
  tail(SMA(ROC(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE), type="discrete"), n=4))
  
  dput(to.quarterly(SPX, drop.time="TRUE"))
  dput(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE))
  dput(ROC(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE), type="discrete"))
  dput(SMA(ROC(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE), type="discrete"), n=4))
  </code></pre>
  
  <p>all looks good to me.</p>
  
  <p>My sessionInfo():</p>
  
  <pre><code>&gt; sessionInfo()
  R version 2.15.0 (2012-03-30)
  Platform: x86_64-pc-linux-gnu (64-bit)
  
  locale:
   [1] LC_CTYPE=en_US.UTF-8          LC_NUMERIC=C                 
   [3] LC_TIME=en_US.UTF-8           LC_COLLATE=en_US.UTF-8       
   [5] LC_MONETARY=en_US.UTF-8       LC_MESSAGES=en_US.UTF-8      
   [7] LC_PAPER=en_US.UTF-8          LC_NAME=en_US.UTF-8          
   [9] LC_ADDRESS=en_US.UTF-8        LC_TELEPHONE=en_US.UTF-8     
  [11] LC_MEASUREMENT=en_US.UTF-8    LC_IDENTIFICATION=en_US.UTF-8
  
  attached base packages:
  [1] stats     graphics  grDevices utils     datasets  methods   base     
  
  other attached packages:
  [1] quantmod_0.3-18 TTR_0.21-0      xts_0.8-7       zoo_1.7-7      
  [5] Defaults_1.1-1  rj_1.1.0-4     
  
  loaded via a namespace (and not attached):
  [1] grid_2.15.0    lattice_0.20-0 tools_2.15.0  
  </code></pre>
  
  <p>Any ideas what might be the solution for these issues?</p>
  
  <p>EDIT: This seems to be a quantmod::chart_Series() bug. If I do this:</p>
  
  <pre><code>subset &lt;- "1990/"
  test &lt;- cbind(head(to.quarterly(SPX, drop.time="TRUE"), -1)[subset],
              to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE)[subset],
              ROC(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE),     type="discrete")[subset],
              SMA(ROC(to.quarterly(GDPC96, drop.time="TRUE", OHLC=FALSE), type="discrete"), n=4)[subset])
  
  test$test &lt;- 1
  
  subset &lt;- "2000/"
  chart_Series(OHLC(test), subset=subset)
  add_TA(test$test)
  add_TA(test$GDPC96)
  
  &gt; test$test &lt;- 1
  &gt; subset &lt;- "2000/"
  &gt; chart_Series(OHLC(test), subset=subset)
  &gt; add_TA(test$test)
  Error in xy.coords(x, y) : 'x' and 'y' lengths differ
  In addition: Warning messages:
  1: In as_numeric(H) : NAs introduced by coercion
  2: In as_numeric(H) : NAs introduced by coercion
  3: In as_numeric(H) : NAs introduced by coercion
  &gt; add_TA(test$GDPC96)   
  Error in xy.coords(x, y) : 'x' and 'y' lengths differ
  In addition: Warning messages:
  1: In as_numeric(H) : NAs introduced by coercion
  2: In as_numeric(H) : NAs introduced by coercion
  3: In as_numeric(H) : NAs introduced by coercion
  &gt; traceback()
  14: stop("'x' and 'y' lengths differ") at chart_Series.R#510
  13: xy.coords(x, y) at chart_Series.R#510
  12: plot.xy(xy.coords(x, y), type = type, ...) at chart_Series.R#510
  11: lines.default(ta.x, as.numeric(ta.y[, i]), col = col, ...) at chart_Series.R#510
  10: lines(ta.x, as.numeric(ta.y[, i]), col = col, ...) at chart_Series.R#510
  9: plot_ta(x = current.chob(), ta = get("x"), on = NA, taType = NULL, 
         col = 1) at replot.R#238
  8: eval(expr, envir, enclos) at replot.R#238
  7: eval(aob, env) at replot.R#238
  6: FUN(X[[12L]], ...) at replot.R#230
  5: lapply(x$Env$actions, function(aob) {
         if (attr(aob, "frame") &gt; 0) {
             x$set_frame(attr(aob, "frame"), attr(aob, "clip"))
             env &lt;- attr(aob, "env")
             if (is.list(env)) {
                 env &lt;- unlist(lapply(env, function(x) eapply(x, eval)), 
                     recursive = FALSE)
             }
             eval(aob, env)
         }
     }) at replot.R#230
  4: plot.replot(x, ...)
  3: plot(x, ...)
  2: print.replot(&lt;environment&gt;)
  1: print(&lt;environment&gt;)
  </code></pre>
  
  <p>Any ideas on how to get this fixed?</p>