繁体   English   中英

R函数返回时间序列ts()对象的开始和结束日期?

[英]R function to return start & end date of a time series ts() object?

我创建了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对象的起始值和结束值?

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

要获取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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM