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で学ぶ時系列データ操作

練習しましょう!

Rで学ぶ時系列データ操作

Preparing Video For Download...