我正在使用quantmod并使用getSymbols下载股票的价值。我发现源本身的数据在一系列日期中是不正确的。不幸的是谷歌没有这些数据。
stock <- 'RELIANCE.BO'
getSymbols(stock)
stockAdjusted <- adjustOHLC(RELIANCE.BO, adjust = c("split","dividend"), use.Adjusted = FALSE, ratio = NULL)
stockAdjusted <- stockAdjusted[!(apply(stockAdjusted, 1, function(y) any(y == 0))),]
2008-07-29至2008-08-14的价格是应有的价格的一半。如何更正此日期范围的值?
答案 0 :(得分:0)
您可以使用[
的常规索引来访问给定日期范围和列的数据。例如,要获得2008-07-29至2008-08-14日期范围的RELIANCE.BO.Adjusted
列,您只需写下:
stockAdjusted["2008-07-29/2008-08-14", "RELIANCE.BO.Adjusted"]
## RELIANCE.BO.Adjusted
## 2008-07-29 961.0422
## 2008-07-30 996.9914
## 2008-07-31 1016.8096
## 2008-08-01 1059.9302
## 2008-08-04 1033.5398
## 2008-08-05 1048.9796
## 2008-08-06 1058.1328
## 2008-08-07 1046.8594
## 2008-08-08 1037.1992
## 2008-08-11 1072.0240
## 2008-08-12 1079.5088
## 2008-08-13 1078.8912
## 2008-08-14 1048.6570
与数据框一样,您也可以使用索引进行分配。要将列RELIANCE.BO.Adjusted
仅在请求的日期范围内乘以2,您可以执行以下操作:
stockAdjusted["2008-07-29/2008-08-14", "RELIANCE.BO.Adjusted"] <- stockAdjusted["2008-07-29/2008-08-14", "RELIANCE.BO.Adjusted"] * 2