【问题标题】:R function to return start & end date of a time series ts() object?R函数返回时间序列ts()对象的开始和结束日期?
【发布时间】:2015-07-26 22:07:45
【问题描述】:

我创建了一个包含 300 个时间序列的列表。

现在我想为每个时间序列创建一个训练样本(通过保留最近 3 周)来构建预测模型。 所以我想使用窗口函数对时间序列进行子集化以跳过最近的 3 周,如下所示。

# Creating training data
train_ts<-lapply(ts_list, function(x){
  window(x,start=c(start_year,start_month),end=c(.....,.....))
}
)

但问题是每个时间序列的结束日期不同。

那么为了帮助我实现这一点,是否有一个 R 函数可以返回 ts 对象的开始值和结束值?

我在这个网站上搜索找不到解决方案。 谢谢

【问题讨论】:

  • head(..., 1)tail(..., 1) 返回?
  • @Pascal 我试过但没用。
  • 此代码 head(ts_list[[1]],1) 根据您的建议。
  • 我明白了,你想要的不是值,而是日期。为此,您有 startend 函数。
  • @Pascal 谢谢你的工作。如果您可以将此作为答案发布,我可以接受。

标签: r datetime time-series forecasting


【解决方案1】:

这是一个假设每周数据的简单示例:

x <- ts(rnorm(200), frequency=52)
endx <- end(x)
window(x, end=c(endx[1],endx[2]-3))

当然,一年中实际上没有 52 周,但这可能是大多数分析都可以忽略的复杂因素。

【讨论】:

    【解决方案2】:

    要获取ts 对象的开始和结束日期,请使用函数startend

    set.seed(42)
    
    # ts object starting in Jan. 2013 and ending in Dec. 2013
    x <- ts(rnorm(12), start = c(2013, 1), end = c(2013, 12), frequency = 12)
    
    start(x)
    # [1] 2013    1
    end(x)
    # [1] 2013   12
    

    【讨论】:

      猜你喜欢
      • 2020-03-21
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2020-01-05
      相关资源
      最近更新 更多