在 xts 对象出现在 data.frame rownames 中后,根据日期“n”行从 xts 对象中提取值

问题描述 投票:0回答:1

感谢 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 个日历日。

r sorting indexing xts
1个回答
0
投票

我想这就是你想要的:

first(sample.xts[paste0(start_date,'/')], 5)
© www.soinside.com 2019 - 2024. All rights reserved.