从2019年10月1日到2019年12月30日在R中创建时间序列,不包括周末或节假日

从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()函数创建一个时间序列。我的数据集有63个值,起始日期为2019年1月10日,最后一个日期为2019年12月31日。此数据集跳过周末和假日。我正在尝试:

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
图书馆(动物园)

z
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
图书馆(动物园)

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
仅适用于常规时间序列,因此无法处理周末和节假日。