我正在进行多期分析,我需要从名为data
的xts对象中提取两个日期之间的值。
我计算的开始和结束位于这些日期之间。这些相同的日期在名为rownames
的数据框中用作results
。
start_date <- head(rownames(results), n=1)
end_date <- tail(rownames(results), n=1)
我还用这个向量识别列名:
> col_names
[1] "Stock1" "Stock2" "Stock3"
我需要在data
和col_names
与start_date
之间的列中的end_date
对象中提取观察结果。
答案 0 :(得分:1)
假设'start_date'和'end_date'是'Date'格式的'character'向量('%Y-%m-%d'),我们paste
将它们与{{1}一起},将其用作行索引,将'col_names'指定为列索引,并将sep='/'
对象'数据'设置为子集。
xts
作为可重复的例子
data[paste(start_date, end_date, sep="/"), col_names]
如果我们需要'start_date'和'end_date'之间的行
library(xts)
data(sample.xts)
start_date <- '2007-01-02'
end_date <- '2007-01-05'
col_names <- c('Open', 'High')
sample.xts[paste(start_date, end_date, sep="/"), col_names]
# Open High
#2007-01-02 50.03978 50.11778
#2007-01-03 50.23050 50.42188
#2007-01-04 50.42096 50.42096
#2007-01-05 50.37347 50.37347