Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to change the date format from yearmon to yyyy-mm-dd?
    primarykey
    data
    text
    <p>My ultimate bjective is to plot the monthly S&amp;P 500, Sotheby's, and Industrial Production into one normalized ggplot2, including recession bars.</p> <p>I collect my data via quantmod and Quandl:</p> <pre><code>#======= LOAD PACKAGES ==================================== library(tseries) library(quantmod) library(Quandl) library(ggplot2) library(forecast) library(urca) #======= DATA IMPORT ====================================== env1 = new.env() getSymbols("^GSPC", env = env1, src ="yahoo", from = as.Date("1988-06-01"),to = as.Date("2013-04-01")) GSPC = env1$GSPC gspc.df = data.frame(date=time(GSPC), coredata(GSPC)) env2 = new.env() getSymbols("BID", env = env2, src ="yahoo", from = as.Date("1988-06-01"),to = as.Date("2013-04-01")) BID = env2$BID sothebys.df = data.frame(date=time(BID), coredata(BID)) INDPRO &lt;- Quandl("FRED/INDPRO", start_date="1988-06-01",end_date="2013-05-29",type="xts") indpro.df = data.frame(date=time(INDPRO), coredata(INDPRO)) </code></pre> <p>Afterwards, I transform the daily data to monthly data:</p> <pre><code># Transform data to monthly time series GSPCM &lt;- to.monthly(GSPC) gspcm.df = data.frame(date=time(GSPCM), coredata(GSPCM)) BIDM &lt;- to.monthly(BID) sothebysm.df = data.frame(date=time(BIDM), coredata(BIDM)) INDPROM &lt;- to.monthly(INDPRO) indprom.df = data.frame(date=time(INDPROM), coredata(INDPROM)) </code></pre> <p>Then, I am constructing the data.frame for the plot:</p> <pre><code># Build the dataframe with monthly dates and stock prices to be used in graphing dfm = data.frame(Date = gspcm.df$date, GSPCM = gspcm.df$GSPC.Adjusted, BIDM = sothebysm.df$BID.Adjusted, INDPROM = indprom.df$INDPRO.Close) </code></pre> <p>Finally, I try to build a ggplot2 with recession bars as described (<a href="https://stackoverflow.com/questions/16841622/how-to-plot-sp-500-and-sothebys-time-series-in-one-ggplot">See Link</a>):</p> <pre><code>recessions.df = read.table(textConnection( "Peak, Trough 1857-06-01, 1858-12-01 1860-10-01, 1861-06-01 1865-04-01, 1867-12-01 1869-06-01, 1870-12-01 1873-10-01, 1879-03-01 1882-03-01, 1885-05-01 1887-03-01, 1888-04-01 1890-07-01, 1891-05-01 1893-01-01, 1894-06-01 1895-12-01, 1897-06-01 1899-06-01, 1900-12-01 1902-09-01, 1904-08-01 1907-05-01, 1908-06-01 1910-01-01, 1912-01-01 1913-01-01, 1914-12-01 1918-08-01, 1919-03-01 1920-01-01, 1921-07-01 1923-05-01, 1924-07-01 1926-10-01, 1927-11-01 1929-08-01, 1933-03-01 1937-05-01, 1938-06-01 1945-02-01, 1945-10-01 1948-11-01, 1949-10-01 1953-07-01, 1954-05-01 1957-08-01, 1958-04-01 1960-04-01, 1961-02-01 1969-12-01, 1970-11-01 1973-11-01, 1975-03-01 1980-01-01, 1980-07-01 1981-07-01, 1982-11-01 1990-07-01, 1991-03-01 2001-03-01, 2001-11-01 2007-12-01, 2009-06-01"), sep=',', colClasses=c('Date', 'Date'), header=TRUE) recessions.trim = subset(recessions.df, Peak &gt;= min(gspc.df$date)) g.gspc = ggplot(data = dfm) + geom_line(aes(x = Date, y = GSPCM, colour = "blue")) + geom_line(aes(x = Date, y = BIDM, colour = "red")) + geom_line(aes(x = Date, y = INDPROM, colour = "green")) + theme_bw() g.gspc = g.gspc + geom_rect(data=recessions.trim, aes(xmin=Peak, xmax=Trough, ymin=-Inf, ymax=+Inf), fill='pink', alpha=0.4) plot(g.gspc) </code></pre> <p>Here the following error message is returned:</p> <pre><code>Don't know how to automatically pick scale for object of type yearmon. Defaulting to continuous. Fehler: Discrete value supplied to continuous scale </code></pre> <p>I assume it has something to do with the date format in my dataframe and the date format in the recessions.df. Again, your help would be highly appreciated. Hope the code is not too lengthy.</p> <p>P.S. If there is a way to generate the same chart including recession bars with the ChartSeries Tool from Quantmod, that would be awesome...</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload