微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用时间数据设置时间序列中的开始日期

如何解决如何使用时间数据设置时间序列中的开始日期

我有一个时间序列,它是爱尔兰的每小时用电量。这是数据帧:

    > head(load2)
# A tibble: 6 x 4
  datetime            fecha       hora load_MWH
  <dttm>              <date>     <dbl>    <dbl>
1 2018-01-01 00:00:00 2018-01-01     0     7594
2 2018-01-01 01:00:00 2018-01-01     1     7091
3 2018-01-01 02:00:00 2018-01-01     2     6652
4 2018-01-01 03:00:00 2018-01-01     3     6308
5 2018-01-01 04:00:00 2018-01-01     4     5972
6 2018-01-01 05:00:00 2018-01-01     5     5810

我想创建一个具有每日季节性和开始日期为2018-01-01 00:00:00的时间序列对象,其中包含一年的数据-但是,我无法正确获取日期轴。我尝试了以下方法

my_ts = ts(load2[,4],frequency = 24,start= c(as.numeric(as.Date("2018-01-01")),1))

似乎可行:

head(my_ts)
Time Series:
Start = c(17532,1) 
End = c(17532,6) 
Frequency = 24 
     load_MWH
[1,]     7594
[2,]     7091
[3,]     6652
[4,]     6308
[5,]     5972
[6,]     5810

但是时间序列的时间轴是一个数字(即自1970-01-01以来的秒数),但是不是日期格式,因此我无法对日期进行任何操作,自动绘图会显示该数字,但不会每年的月份:

> autoplot(energyireland2018_ts2[,1]) + scale_x_date(date_labels = "%b/%d")
Scale for 'x' is already present. Adding another scale for 'x',which will replace the
existing scale.
Error: Invalid input: date_trans works with objects of class Date only

类似地,我不能使用任何操纵日期的预测包函数

所以问题是:如何将这个时间序列的时间轴转换为Date对象?(仍使用预测程序包)。非常感谢!

解决方法

ts类和预测软件包不适用于每小时数据。我建议您使用较新的tsibble类,在 feasts 包中有一个autoplot函数,在寓言包中有一个预测函数。这是一个使用半小时电力需求数据的示例。

library(feasts)
library(tsibbledata)

vic_elec
#> # A tsibble: 52,608 x 5 [30m] <Australia/Melbourne>
#>    Time                Demand Temperature Date       Holiday
#>    <dttm>               <dbl>       <dbl> <date>     <lgl>  
#>  1 2012-01-01 00:00:00  4383.        21.4 2012-01-01 TRUE   
#>  2 2012-01-01 00:30:00  4263.        21.0 2012-01-01 TRUE   
#>  3 2012-01-01 01:00:00  4049.        20.7 2012-01-01 TRUE   
#>  4 2012-01-01 01:30:00  3878.        20.6 2012-01-01 TRUE   
#>  5 2012-01-01 02:00:00  4036.        20.4 2012-01-01 TRUE   
#>  6 2012-01-01 02:30:00  3866.        20.2 2012-01-01 TRUE   
#>  7 2012-01-01 03:00:00  3694.        20.1 2012-01-01 TRUE   
#>  8 2012-01-01 03:30:00  3562.        19.6 2012-01-01 TRUE   
#>  9 2012-01-01 04:00:00  3433.        19.1 2012-01-01 TRUE   
#> 10 2012-01-01 04:30:00  3359.        19.0 2012-01-01 TRUE   
#> # … with 52,598 more rows

autoplot(vic_elec,Demand)

reprex package(v0.3.0)于2020-09-21创建

有关处理这些对象的软件包的信息,请参见http://tidyverts.org

有关预测模型和相关语法的教科书介绍,请参见http://OTexts.com/fpp3

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。