[R-SIG-Finance] I know I should be able to figure this out...

James Toll james at jtoll.com
Thu Apr 9 23:25:37 CEST 2015


> On Apr 6, 2015, at 11:59 AM, Samuel Wilson <samuelcoltwilson at gmail.com> wrote:
> 
> I'm trying to create a script that takes a list of equity tickers (60-80
> tickers each day), and downloads their prices and puts them into
> data.frames.

I realize your question was answered, but is there a particular reason you want to make this a data.frame?  If I’m not mistaken, the performance should be better if left as xts (i.e. matrix). Might I suggest creating a list of xts?

Given your tickers:

tickers<-c("GLD","DBC", "EEM", "EFV","EFG","BND","TLT","SHY","IWF","IWD","IWC","IWO","IWN","VNQ")

Something like:

library(parallel)
library(quantmod)
library(xts)

getData <- function (symbols, ...) {
  result <- mclapply(symbols, function(x) getSymbols(x, auto.assign = FALSE, ...))
  names(result) <- symbols
  return(result)
}

output <- getData(tickers)
output$GLD["2015-04”]

> However, I want to build a generic engine
> using for.next loops, because the list of tickers will change each day.

Rather than for loops, write functions to do what you need, and then you can take advantage of the parallel apply functions like mclapply.

mclapply(tickers, function(x) last(output[[x]]))

Just a suggestion.


James



More information about the R-SIG-Finance mailing list