以 xts 格式过滤日期索引

filter date index in xts format

我从 FRED 下载了一些汇率,如何过滤索引日期以仅保留“2010”之后的日期?

它是一个 xts 对象,然后我们从索引中提取 year 以创建子集

的逻辑向量
library(xts)
xt1[lubridate::year(index(xt1)) >= 2010]

或使用 subset%>%

library(dplyr)
xt1 %>%
       subset(year(index(.))>= 2010)

数据

set.seed(24)
xt1 <- xts(rnorm(50), order.by = seq(as.Date('2009-01-01'), 
    length.out = 50, by = '1 month'))

xts接受/符号如下所示:

library(quantmod)
getSymbols("DGS3MO", src = "FRED") # generate test data

DGS3MO["2010/"]
##            DGS3MO
## 2010-01-01     NA
## 2010-01-04   0.08
## 2010-01-05   0.07
## 2010-01-06   0.06
## 2010-01-07   0.05
## 2010-01-08   0.05
## ...snip...

或者,xts 有一个 window 方法:

window(DGS3MO, start = "2010-01-01")
##            DGS3MO
## 2010-01-01     NA
## 2010-01-04   0.08
## 2010-01-05   0.07
## 2010-01-06   0.06
## 2010-01-07   0.05
## 2010-01-08   0.05
## ...snip...