繁体   English   中英

将包含每小时时间序列的数据帧转换为r中的ts对象

[英]convert dataframe that contains hourly time series to ts object in r

我有以下形式的数据:

   Date                PJMW_MW
1  2002-04-01 01:00:00 4374
2  2002-04-01 02:00:00 4306
3  2002-04-01 03:00:00 4322
4  2002-04-01 04:00:00 4359
5  2002-04-01 05:00:00 4436
6  2002-04-01 06:00:00 4723
7  2002-04-01 07:00:00 5180
8  2002-04-01 08:00:00 5482
9  2002-04-01 09:00:00 5616
10 2002-04-01 10:00:00 5722
...
143206 2018-08-03 00:00:00 5489

数据具有以下类型:

> class(dat)
[1] "data.frame"
> class(dat$Date)
[1] "POSIXct" "POSIXt" 
> class(dat$PJMW_MW)
[1] "numeric"
> typeof(dat$PJMW_MW)
[1] "double"

如何将其转换为时间序列对象,以便在绘制数据时x轴是实际日期(而不是从1到143206的索引)? 我还需要进行时间序列分析,例如预测,平滑,拟合模型等。

为此目的建议使用什么方式处理此类数据?

使用基数R时,可以使用函数ts() ,在其中指定系列的值以及观察值的开始和结束时间,但是似乎不适合使用小时。

因此,您可以使用函数zoo() (来自Zoo图书馆):

library(zoo)

hourly_ts <- zoo(
  x         = dat$PJMW_MW,
  order.by  = dat$Date,
  frequency = 24
)

然后,如果您plot(hourly_ts) (或使用ggplot ),它将具有正确的x轴。

暂无
暂无

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

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