使用 R 修改 xts 中子集数据范围的值
Modify values of a subset data range in xts using R
我正在使用 quantmod 并使用 getSymbols 下载股票的值。我发现源中的数据本身在某个日期范围内是不正确的。不幸的是,google 中没有数据。
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 的价格是应有价格的一半。如何更正此日期范围内的值?
您可以使用 [
的正常索引来访问给定日期范围和列的数据。例如,要获取日期范围为 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
我正在使用 quantmod 并使用 getSymbols 下载股票的值。我发现源中的数据本身在某个日期范围内是不正确的。不幸的是,google 中没有数据。
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 的价格是应有价格的一半。如何更正此日期范围内的值?
您可以使用 [
的正常索引来访问给定日期范围和列的数据。例如,要获取日期范围为 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