[R] pass character vector in instrument field of get.hist.quote function
David Winsemius
dwinsemius at comcast.net
Thu Apr 7 03:13:53 CEST 2011
On Apr 6, 2011, at 12:06 PM, algotr8der wrote:
> Hi Joshua,
>
> THank you for showing me how to use getSymbols. I am trying to
> follow the
> example you provided. However I am having some difficulty using the
> various
> combination of functions you have used. I tried to execute one step
> at a
> time as follows -
>
> I have a ticker vector that looks like the following:
>
>> tickers
> [1] "SPY" "DIA" "IWM" "SMH" "OIH" "XLY" "XLP" "XLE" "XLI" "XLB"
> "XLK" "XLU"
> "XLV"
> [14] "QQQ"
>> str(tickers)
> chr [1:14] "SPY" "DIA" "IWM" "SMH" "OIH" "XLY" "XLP" "XLE" ...
>
> I wrote a function called myX to use in the lapply call. It has the
> following code:
>
> myX <- function(tickers, start, end) {
> require(quantmod) # this only needs to be called once.
> getSymbols(tickers, from=start, to=end)
> }
>
>
> 1) Call lapply by itself
>
>> lapply(tickers,myX,start="2001-03-01", end="2011-03-11")
>
>> lapply(tickers,myX,start="2001-03-01", end="2011-03-11")
> [[1]]
> [1] "SPY"
>
> [[2]]
> [1] "DIA"
>
only needed to use three for demonstration purposes
>
> [[14]]
> [1] "QQQ"
>
> So this works fine and I can inspect the value of any of the tickers
> i.e.
> SPY.
>
> Now I want to extract the Closing prices.
>
> 2) I did Cl(SPY) and this outputs the data in the Close column as
> expected.
> However, I am not sure how to extract the Closing prices of each of
> the
> elements inside the data structure returned by lapply, which I
> believe is a
> list structure. I want to merge them into one object as you did but
> I cant
> seem to follow.
As pointed out by Joshua Ulrich this was crossposted on SO. Here is
the code I posted there:
> ClosePrices <- do.call(cbind, lapply(tickers, function(x)
Cl(get(x))))
> head(ClosePrices)
SPY.Close DIA.Close QQQ.Close
2001-03-01 124.60 104.68 48.80
2001-03-02 123.61 104.80 46.70
2001-03-05 124.74 105.57 47.55
2001-03-06 126.08 106.15 49.40
2001-03-07 126.98 107.45 49.42
2001-03-08 127.12 108.61 48.50
--
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list