使用 zoo 套件的時間序列物件

在 R 中操作時間序列資料

Harrison Brown

Graduate Researcher in Geography

zoo 套件

zoo

  • 提供 zoo 類別物件
  • 操作與視覺化時間序列的函式
在 R 中操作時間序列資料

zoo 與 base R 比較

base R:

  • stats::ts 類別
  • 僅支援規則間隔
  • 轉成 data frame 較費工

zoo

  • zoo 類別
  • 規則或不規則間隔皆可
  • 提供轉為 data frame 的方法
在 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 = "Plotting a zoo Object")
在 R 中操作時間序列資料

zoo 與 ggplot2

「my_zoo」時間序列的圖。此圖示範如何用 ggplot2 套件加入各種繪圖元素,語法與繪製 data frame 類似,如座標軸標籤、標題、主題、顏色等。

在 R 中操作時間序列資料

一起來練習吧!

在 R 中操作時間序列資料

Preparing Video For Download...