alan lapedes
2011-Dec-07 00:36 UTC
[R] scatterplotting stock returns using quantmod and pairs()
I want to get data for a set of ticker symbols and compute the daily return of
the adjusted close using quantmod, and then scatterplot returns using pairs().
The following gets data for the list of tickers:
tickers <-
c("SHY","TLT","SPY","IWM","GLD","IEV","ILF","EWJ","EPP","SAF","ASA")
AdjClosePrices <- do.call(merge, lapply(tickers, function(x) Ad(get(x))))
#get adjusted close prices
First try at getting returns and plotting:
AdjCloseReturns <- do.call(merge, lapply(tickers, function(x)
dailyReturn(Ad(get(x))) ))
But the resulting pairs plot
pairs(data.matrix(AdjCloseReturns),cex=0.01)
has uninformative text "daily.returns" down the diag on the plot.
Second try at getting returns and plotting: using lapply instead
AdjCloseReturns <- lapply(AdjClosePrices,dailyReturn)
head(AdjCloseReturns)
this prints long columns of numbers (not what I expected) but at least I see a
ticker symbol e.g:
$IEV.Adjusted
daily.returns
2001-03-01 0.0000000000
2001-03-02 0.0037147103
2001-03-05 0.0088823094
However trying to plot:
pairs(data.matrix(AdjCloseReturns),cex=0.01)
gives error:
Error in pairs.default(data.matrix(AdjCloseReturns), cex = 0.01) :
non-numeric argument to 'pairs'
Any insight would be appreciated: I want to scatterplot the returns for a set of
tickers using pairs() with the ticker symbol info down the diag (and would be
nice to also have scatterplot on lower panel and the numerical correlation on
upper panel)
Thanks!
R. Michael Weylandt
2011-Dec-07 15:29 UTC
[R] scatterplotting stock returns using quantmod and pairs()
The names of the list entries are not the same as the column names of
the elements of the list (if that makes any sense)...you need to add
them manually after the merge: this works
library(quantmod)
tickers <-
c("SHY","TLT","SPY","IWM","GLD","IEV")
getSymbols(tickers)
AdjCloseReturns <- do.call(merge, lapply(tickers, function(x)
dailyReturn(Ad(get(x)))))
names(AdjCloseReturns) <- tickers
pairs(as.matrix(AdjCloseReturns))
Michael
On Tue, Dec 6, 2011 at 7:36 PM, alan lapedes <asl87501 at earthlink.net>
wrote:> I want to get data for a set of ticker symbols and compute the daily return
of the adjusted close using quantmod, and then scatterplot returns using
pairs().
>
> The following gets data for the list of tickers:
> tickers <-
c("SHY","TLT","SPY","IWM","GLD","IEV","ILF","EWJ","EPP","SAF","ASA")
> AdjClosePrices <- do.call(merge, lapply(tickers, function(x)
Ad(get(x)))) #get adjusted close prices
>
> First try at getting returns and plotting:
> AdjCloseReturns <- do.call(merge, lapply(tickers, function(x)
dailyReturn(Ad(get(x))) ))
> But the resulting pairs plot
> pairs(data.matrix(AdjCloseReturns),cex=0.01)
> has uninformative text "daily.returns" down the diag on the plot.
>
> Second try at getting returns and plotting: using lapply instead
> AdjCloseReturns <- lapply(AdjClosePrices,dailyReturn)
> head(AdjCloseReturns)
> this prints long columns of numbers (not what I expected) but at least I
see a ticker symbol e.g:
> $IEV.Adjusted
> ? ? ? ? ? daily.returns
> 2001-03-01 ?0.0000000000
> 2001-03-02 ?0.0037147103
> 2001-03-05 ?0.0088823094
>
>
> However trying to plot:
> pairs(data.matrix(AdjCloseReturns),cex=0.01)
> gives error:
> Error in pairs.default(data.matrix(AdjCloseReturns), cex = 0.01) :
> ?non-numeric argument to 'pairs'
>
> Any insight would be appreciated: I want to scatterplot the returns for a
set of tickers using pairs() with the ticker symbol info down the diag (and
would be nice to also have scatterplot on lower panel and the numerical
correlation on upper panel)
> Thanks!
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.