r - 使用 quantmod 使用 R 下载多个股票月度价格
问题描述
我试图在很长一段时间内获取多个股票代码的股票价格,并将它们收集在一个数据框中。
这是我的代码
library('quantmod')
symbol1 = c('SPY', # S$P500
'IEF', # 10Y treasury bond
'TLT', # 20Y treasury bond
'AGG', # Core U.S Aggregate Bond
'SHY', # Cash
'GLD', # Gold
'IWN') # Russell 2000 value
price = function(symbols){
loadSymbols(symbols, src = 'yahoo', from= '2000-11-01', periodicity = 'monthly')
prices = list()
for (i in 1:length(symbols)) {
prices[[i]] = Ad(get(symbols[i])[,6])
}
prices = do.call(cbind, prices)
colnames(prices) = gsub('\\.[A-z]*', '',colnames(prices))
prices = na.omit(prices)
return(prices)
}
a = price(symbol1)
我有两个问题,
我该如何解决这个问题?
还是有更好更简洁的代码来获取多个代码的时间序列月度数据(调整后的价格)?
解决方案
关于缺失值的警告:
如果你看一下其中一个代码,
loadSymbols('SPY', src = 'yahoo', from= '2000-11-01', periodicity = 'monthly')
> SPY[is.na(SPY$SPY.Open),]
SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted
2021-02-01 NA NA NA NA NA NA
您会注意到 Yahoo API 已返回 2021-02-01 月份的缺失值。这是有道理的,因为您已请求每月平均值,而您无法计算当前月份的平均值。
您可能希望过滤数据以排除当前月份。例如,这运行没有错误:
loadSymbols(symbols, src = 'yahoo', from= '2000-11-01',to='2021-01-31', periodicity = 'monthly')
关于您的第二个问题,我无法复制:
a = price(symbol1)
a %>% tail(10)
SPY IEF TLT AGG SHY GLD IWN
2020-04-01 286.8316 120.6718 164.8157 115.0776 86.24834 158.80 90.90018
2020-05-01 300.4978 121.0832 161.9357 115.8682 86.21467 162.91 93.73619
2020-06-01 304.4870 121.1411 162.4827 116.6548 86.23647 167.37 95.97152
2020-07-01 323.8377 122.1878 169.7082 118.2020 86.32609 185.43 98.42319
2020-08-01 346.4406 121.0134 161.1535 117.2467 86.31715 184.83 103.70540
2020-09-01 332.1390 121.4210 162.3971 117.1425 86.31710 177.12 98.25503
2020-10-01 325.1540 119.7535 156.9142 116.4811 86.28612 176.20 102.47127
2020-11-01 360.5232 120.1606 159.5191 117.8953 86.30606 166.67 122.00240
2020-12-01 372.2931 119.7973 157.4051 117.8594 86.31503 178.36 131.08641
2021-01-01 370.0700 118.6400 152.0000 117.3100 86.40000 172.61 138.39999
尽管如此,与此图表的比较清楚地表明,您在 2021-02-01 之前为 TLT 附加的值是错误的。
推荐阅读
- javascript - 如何使用按钮在我的网站上移动折叠的元素?
- gridcontrol - devexpress 如何在第一行添加数据或将数据添加到特定行
- xamarin - 除了 xamarin 表单顶部的第一个事件之外,RelativeLayout 页面中的事件不起作用
- json - 使用 Decodable 在 Swift 5 中解析嵌套 JSON 时遇到问题
- arrays - 尝试在电报的“tag_keys”输入插件中添加可变数量的嵌套标签
- flutter - Flutter Widgets 访问 Null Provider 对象
- android - 如何处理颤振中的文本字段?
- python - Python 3.7.8 导入已卸载的 TensorFlow 版本
- wolfram-mathematica - 如何在 VectorPlot 中将 VectorColorFunction 分配给相位(而不是幅度)
- javascript - 我收到此错误:“react-modal: App element is not defined”