在R中的Quantmod包中,您可以按如下方式下载股价数据
my_portfolio <- c("AAPL", "SBUX")
getSymbols(my_portfolio)
这很好用 . 我可以通过输入 AAPL
或 SBUX
来访问库存数据 . 例如
> head(AAPL)
AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2007-01-03 86.29 86.58 81.90 83.80 309579900 11.34
2007-01-04 84.05 85.95 83.82 85.66 211815100 11.59
2007-01-05 85.77 86.20 84.40 85.05 208685400 11.51
2007-01-08 85.96 86.53 85.28 85.47 199276700 11.56
2007-01-09 86.45 92.98 85.15 92.57 837324600 12.52
2007-01-10 94.75 97.80 93.45 97.00 738220000 13.12
......我可以用这种方式做很多不错的统计数据 .
但这很不方便,因为如果我改变 my_portfolio
,比如用 "IBM"
替换 "AAPL"
,那么我必须在后面的脚本中用 IBM
更改 AAPL
的所有未来出现 .
My Question: 如何找到从 getSymbols
获取的与 my_portfolio
相关的下载数据,而无需再次显式输入 AAPL
和 SBUX
?
1 回答
我倾向于这样做:
因此,这会生成包含股票价格的xts对象的命名列表 . 列表元素与您的投资组合中的股票名称相同 .
不幸的是,列名仍然是特定于库存的(例如,
AAPL.Close
而不仅仅是Close
),但您可以使用例如quantmod
中的Cl(...)
函数来克服该问题 .