Search code examples
rstockquantmod

getSymbols downloading data for multiple symbols and export adjusting prices to CSV file


quantmode newbie here,

My end goal is to have a CSV file including monthly stock prices, I've downloaded the data using getSymbols using this code:

Symbols <- c("DIS", "TSLA","ATVI", "MSFT", "FB", "ABT","AAPL","AMZN",
             "BAC","NFLX","ADBE","WMT","SRE","T","MS")

Data <- new.env()
getSymbols(c("^GSPC",Symbols),from="2015-01-01",to="2020-12-01"
           ,periodicity="monthly",
             env=Data)

the line above works fine, now I need to create a data frame that only includes the adjusted prices for all the symbols with a data column ofc,

any help, please? :)

Desired output would be something similar to this

enter image description here


Solution

  • Another straightforward way to get your monthly data:

    tickers <- c('AMZN','FB','GOOG','AAPL')
    getSymbols(tickers,periodicity="monthly")
    head(do.call("merge.xts",c(lapply(mget(tickers),"[",,6),all=FALSE)),3)
    
               AMZN.Adjusted FB.Adjusted GOOG.Adjusted AAPL.Adjusted
    2012-06-01        228.35       31.10      288.9519      17.96558
    2012-07-01        233.30       21.71      315.3032      18.78880
    2012-08-01        248.27       18.06      341.2658      20.46477
    

    Note the logical argument all = FALSE is the equivalent of an innerjoin and you get data when all of your stocks have prices. all = TRUE fills data which is not available with NAs (outerjoin). To write the file you can use:

    write.zoo(monthlyPrices,file = 'filename.csv',sep=',',quote=FALSE)