感谢 akrun 提供以下代码。它为我的问题提供了部分解决方案。
library(xts)
data(sample_matrix)
sample.xts <- as.xts(sample_matrix, descr='my new xts object')
start_date <- '2007-01-02'
end_date <- '2007-01-05'
col_names <- c('Open', 'High')
下面的代码获取
start_date
和end_date
预先指定范围内的值。
sample.xts[paste(start_date, end_date, sep="/"), col_names]
我真正需要的是
start_date + 5
和 end_date + 5
之间的值。
sample.xts[paste(as.Date(start_date) + 5, as.Date(end_date) + 5, sep="/"), col_names]
问题是我有交易日,所以不仅排除了周末,还排除了假期等。例如,在某些情况下,+5 只产生 3 个值,因为其他 2 个是周末。所以我想把上面任意的日历天设置成
as.Date
的格式。我需要该表中接下来的 5 个值,而不是接下来的 5 个日历日。
我想这就是你想要的:
first(sample.xts[paste0(start_date,'/')], 5)