【发布时间】:2013-12-10 17:21:18
【问题描述】:
我知道如何从XTS 对象中获取特定日期的数据或具有特定日期的序列。
但是如何从XTS 获取 x 天前的数据?
假设我XTS 中的最新日期是今天,我想提取一周前的数据行。那会是什么样子?
【问题讨论】:
我知道如何从XTS 对象中获取特定日期的数据或具有特定日期的序列。
但是如何从XTS 获取 x 天前的数据?
假设我XTS 中的最新日期是今天,我想提取一周前的数据行。那会是什么样子?
【问题讨论】:
一个示例数据集:
library(xts)
data(sample_matrix)
sample.xts <- as.xts(sample_matrix, descr='my new xts object')
> head(sample.xts)
# Open High Low Close
# 2007-01-02 50.03978 50.11778 49.95041 50.11778
# 2007-01-03 50.23050 50.42188 50.23050 50.39767
# 2007-01-04 50.42096 50.42096 50.26414 50.33236
# 2007-01-05 50.37347 50.37347 50.22103 50.33459
# 2007-01-06 50.24433 50.24433 50.11121 50.18112
# 2007-01-07 50.13211 50.21561 49.99185 49.99185
您可以将数学运算符 + 和 - 与日期一起使用。
refDate <- as.Date("2007-01-07") # a reference date
sample.xts[refDate]
# Open High Low Close
# 2007-01-07 50.13211 50.21561 49.99185 49.99185
sample.xts[refDate - 3] # 3 days before
# Open High Low Close
# 2007-01-04 50.42096 50.42096 50.26414 50.33236
顺便说一句:你可以通过Sys.Date()获取今天的日期。
Sys.Date()
# [1] "2013-12-10"
【讨论】: