【问题标题】:filter date index in xts format以 xts 格式过滤日期索引
【发布时间】:2021-04-15 23:13:42
【问题描述】:

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

【问题讨论】:

  • 你能不能把dput的例子拿出来看看
  • 我的问题很笼统。我只是想知道是否有办法过滤 R 中的索引列。
  • 取决于数据的结构
  • 也许yourobj[year(index(yourobj)) >= 2010]
  • 例如在这种情况下是一个 'xts' 'zoo' 。

标签: r quantmod


【解决方案1】:

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(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...

【讨论】:

    【解决方案2】:

    它是一个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'))
    

    【讨论】:

    • 有什么办法可以把这条线管起来吗?
    猜你喜欢
    • 2015-09-28
    • 2021-03-17
    • 2014-07-25
    • 2021-11-25
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    相关资源
    最近更新 更多