使用 zoo 包的时间序列对象

R 中的时间序列数据处理

Harrison Brown

Graduate Researcher in Geography

zoo 包

zoo

  • 提供 zoo 类对象
  • 用于处理与可视化时间序列的函数
R 中的时间序列数据处理

zoo 与 base R 对比

base R:

  • stats::ts
  • 仅支持等间隔
  • 转为数据框较繁琐

zoo

  • zoo
  • 支持等间隔或不等间隔
  • 提供转为数据框的方法
R 中的时间序列数据处理

创建 zoo 对象

sample_values
[1] 4.224 5.495 6.156
[4] 6.397 6.291 6.262
...
sample_dates
[1] "2022-01-20" "2022-01-21"
[3] "2022-01-22" "2022-01-23"
[5] "2022-01-24" "2022-01-25"
...
R 中的时间序列数据处理

创建 zoo 对象

library(zoo)
my_zoo <- zoo(x = sample_values,
              order.by = sample_dates)
my_zoo
2022-01-20 4.224
2022-01-21 5.495
2022-01-22 6.156
2022-01-23 6.397
2022-01-24 6.291
2022-01-25 6.262
...
R 中的时间序列数据处理

从 ts 转为 zoo

class(AirPassengers)
[1] "ts"
AP_zoo <- zoo::as.zoo(AirPassengers)
class(AP_zoo)
[1] "zoo"
R 中的时间序列数据处理

zoo 与 ts 对比

print(AirPassengers)
     Jan Feb Mar Apr May Jun Jul ...
1949 112 118 132 129 121 135 148 ...
1950 115 126 141 135 125 149 170 ...
1951 145 150 178 163 172 178 199 ...
1952 171 180 193 181 183 218 230 ...
1953 196 196 236 235 229 243 264 ...
...
print(AP_zoo)
Jan 1949 112
Feb 1949 118
Mar 1949 132
Apr 1949 129
May 1949 121
Jun 1949 135
Jul 1949 148
Aug 1949 148
Sep 1949 136
...
R 中的时间序列数据处理

zoo 与 ggplot2

library(ggplot2)

ggplot(data = my_zoo,
       aes(x = Index, y = my_zoo)) +

geom_line(color = "blue", size = 2, linetype = "dotted") +
scale_y_continuous() +
theme_bw() + labs(x = "Index", y = "Value", title = "绘制 zoo 对象")
R 中的时间序列数据处理

zoo 与 ggplot2

"my_zoo"时间序列图。该图展示了如何使用 ggplot2 包的多种绘图元素,语法类似于数据框绘图,例如轴标签、标题、主题、颜色等。

R 中的时间序列数据处理

Vamos praticar!

R 中的时间序列数据处理

Preparing Video For Download...