如何从xts对象获取最后几周的数据

时间:2015-12-01 10:48:37

标签: r xts

E.g。如果是12月1日,我希望它在11月25日星期三到12月1日星期二,包括在内。

注意:last()不是答案,因为它会获取xts对象中的最新数据,而不管当前日期。

x = xts(1:10, as.Date("2015-12-01") - (30:21))
last(x,"1 week")  #2015-11-09, 2015-11-10
last(x,"7 days")  #2015-11-04 to 2015-11-10 inclusive.

在这个例子中,我正在寻找的函数将返回一个空白对象。

理想情况下,该解决方案具有last()函数的所有功能,因为能够编写last(x,"2 hours")last(x,"6 months")等等。很棒。

1 个答案:

答案 0 :(得分:0)

不应该那么简单:

library(xts)

endDate = as.Date("2015-12-01")
startDate = endDate - 6

x = xts(1:100, as.Date("2015-12-30") - (1:100))
x[index(x) >= startDate & index(x) <= endDate,]

# [,1]
# 2015-11-25   35
# 2015-11-26   34
# 2015-11-27   33
# 2015-11-28   32
# 2015-11-29   31
# 2015-11-30   30
# 2015-12-01   29


x = xts(1:100, as.Date("2015-11-15") - (1:100))
x[index(x) >= startDate & index(x) <= endDate,] # Nothing there