从2019年10月1日到2019年12月30日在R中创建时间序列,不包括周末或节假日
我正在尝试使用ts()函数创建一个时间序列。我的数据集有63个值,起始日期为2019年1月10日,最后一个日期为2019年12月31日。此数据集跳过周末和假日。我正在尝试:从2019年10月1日到2019年12月30日在R中创建时间序列,不包括周末或节假日,r,time,series,R,Time,Series,我正在尝试使用ts()函数创建一个时间序列。我的数据集有63个值,起始日期为2019年1月10日,最后一个日期为2019年12月31日。此数据集跳过周末和假日。我正在尝试: ts(data, start = c(2019,10), end = c(2019, 12), frequency = 260) 因为一年有260天,不包括周末,但这是行不通的。我总是得到一个观察次数错误的时间序列(应该还有63个值对吗?),我不知道如何设置它。如果有人能帮助我,我将不胜感激 谢谢 ts通常用于月度、季度
ts(data, start = c(2019,10), end = c(2019, 12), frequency = 260)
因为一年有260天,不包括周末,但这是行不通的。我总是得到一个观察次数错误的时间序列(应该还有63个值对吗?),我不知道如何设置它。如果有人能帮助我,我将不胜感激
谢谢
ts
通常用于月度、季度和年度数据,而不是每日数据。如果您想以任何方式执行此操作,您可以使用ts(data)
,它将使用索引1、2等。使用结尾注释中的data
:
ts(data)
## Time Series:
## Start = 1
## End = 3
## Frequency = 1
## [1] 1 2 3
如果您有一个Date
类向量d
与data
长度相同,则可以使用zoo或xts,或者使用as.ts
将其转换为ts
,如下所示(其中索引是自UNIX纪元以来的天数)。如果要指定频率,可以在zoo调用中添加frequency=参数
library(zoo)
z <- zoo(data, d)
z
## 2019-10-01 2019-10-03 2019-10-04
## 1 2 3
as.ts(z)
## Time Series:
## Start = 18170
## End = 18173
## Frequency = 1
## [1] 1 NA 2 3
图书馆(动物园)
zts
通常用于月度、季度和年度数据,而不是每日数据。如果您想以任何方式执行此操作,您可以使用ts(data)
,它将使用索引1、2等。使用结尾注释中的data
:
ts(data)
## Time Series:
## Start = 1
## End = 3
## Frequency = 1
## [1] 1 2 3
如果您有一个Date
类向量d
与data
长度相同,则可以使用zoo或xts,或者使用as.ts
将其转换为ts
,如下所示(其中索引是自UNIX纪元以来的天数)。如果要指定频率,可以在zoo调用中添加frequency=参数
library(zoo)
z <- zoo(data, d)
z
## 2019-10-01 2019-10-03 2019-10-04
## 1 2 3
as.ts(z)
## Time Series:
## Start = 18170
## End = 18173
## Frequency = 1
## [1] 1 NA 2 3
图书馆(动物园)
z您可以使用bizdays
和timeDate
软件包,如下所示:
library(bizdays)
library(timeDate)
create.calendar(name='America/New_York', holidays = as.Date(holidayNYSE(2019)), weekdays = c('saturday', 'sunday'), start.date=as.Date('2019-01-01'), end.date = as.Date('2019-12-31'))
bizseq(as.Date('2019-10-01'), as.Date('2019-12-31'), 'America/New_York')
[1] "2019-10-01" "2019-10-02" "2019-10-03" "2019-10-04" "2019-10-07" "2019-10-08" "2019-10-09"
[8] "2019-10-10" "2019-10-11" "2019-10-14" "2019-10-15" "2019-10-16" "2019-10-17" "2019-10-18"
[15] "2019-10-21" "2019-10-22" "2019-10-23" "2019-10-24" "2019-10-25" "2019-10-28" "2019-10-29"
[22] "2019-10-30" "2019-10-31" "2019-11-01" "2019-11-04" "2019-11-05" "2019-11-06" "2019-11-07"
[29] "2019-11-08" "2019-11-11" "2019-11-12" "2019-11-13" "2019-11-14" "2019-11-15" "2019-11-18"
[36] "2019-11-19" "2019-11-20" "2019-11-21" "2019-11-22" "2019-11-25" "2019-11-26" "2019-11-27"
[43] "2019-11-29" "2019-12-02" "2019-12-03" "2019-12-04" "2019-12-05" "2019-12-06" "2019-12-09"
[50] "2019-12-10" "2019-12-11" "2019-12-12" "2019-12-13" "2019-12-16" "2019-12-17" "2019-12-18"
[57] "2019-12-19" "2019-12-20" "2019-12-23" "2019-12-24" "2019-12-26" "2019-12-27" "2019-12-30"
[64] "2019-12-31"
在这个序列中有64天;您的63天可能是由于假日日历的不同。您可以使用bizdays
和timeDate
软件包,如下所示:
library(bizdays)
library(timeDate)
create.calendar(name='America/New_York', holidays = as.Date(holidayNYSE(2019)), weekdays = c('saturday', 'sunday'), start.date=as.Date('2019-01-01'), end.date = as.Date('2019-12-31'))
bizseq(as.Date('2019-10-01'), as.Date('2019-12-31'), 'America/New_York')
[1] "2019-10-01" "2019-10-02" "2019-10-03" "2019-10-04" "2019-10-07" "2019-10-08" "2019-10-09"
[8] "2019-10-10" "2019-10-11" "2019-10-14" "2019-10-15" "2019-10-16" "2019-10-17" "2019-10-18"
[15] "2019-10-21" "2019-10-22" "2019-10-23" "2019-10-24" "2019-10-25" "2019-10-28" "2019-10-29"
[22] "2019-10-30" "2019-10-31" "2019-11-01" "2019-11-04" "2019-11-05" "2019-11-06" "2019-11-07"
[29] "2019-11-08" "2019-11-11" "2019-11-12" "2019-11-13" "2019-11-14" "2019-11-15" "2019-11-18"
[36] "2019-11-19" "2019-11-20" "2019-11-21" "2019-11-22" "2019-11-25" "2019-11-26" "2019-11-27"
[43] "2019-11-29" "2019-12-02" "2019-12-03" "2019-12-04" "2019-12-05" "2019-12-06" "2019-12-09"
[50] "2019-12-10" "2019-12-11" "2019-12-12" "2019-12-13" "2019-12-16" "2019-12-17" "2019-12-18"
[57] "2019-12-19" "2019-12-20" "2019-12-23" "2019-12-24" "2019-12-26" "2019-12-27" "2019-12-30"
[64] "2019-12-31"
在这个序列中有64天;您的63天可能是因为假日日历的不同。查看该软件包,您可以在其中指定工作日和假日日历ts
仅适用于常规时间序列,因此它无法处理周末和假日。请查看该软件包,其中可以指定工作日和假日日历ts
仅适用于常规时间序列,因此无法处理周末和节假日。