dplyrで時系列データの処理

で書いた、”dplyrでの時系列処理ってどうするんじゃい”というのの簡単な例。
下で示したようなやり方で大半は片付くのではないだろうか(たぶん)。

まず、ライブラリ&サンプルデータの作成。
lubridateパッケージが大事で、こいつで日付を操作しつつdata.frameのままdplyrで裁いてデータ処理をしていくという方針である。

library(xts)
library(lubridate)
library(dplyr)
# 適当なxtsデータ
x <- as.data.frame(sample_matrix)
x$index <- as.Date(rownames(sample_matrix))
> head(x)
               Open     High      Low    Close      index
2007-01-02 50.03978 50.11778 49.95041 50.11778 2007-01-02
2007-01-03 50.23050 50.42188 50.23050 50.39767 2007-01-03
2007-01-04 50.42096 50.42096 50.26414 50.33236 2007-01-04
2007-01-05 50.37347 50.37347 50.22103 50.33459 2007-01-05
2007-01-06 50.24433 50.24433 50.11121 50.18112 2007-01-06
2007-01-07 50.13211 50.21561 49.99185 49.99185 2007-01-07

では、このxというデータが月ごとに何件ずつデータをもっているのかをdplyrで集計してみると

> # 月次の集計
> x %>% group_by(month=month(x$index)) %>% summarize(n())
Source: local data frame [6 x 2]

  month   n()
  (dbl) (int)
1     1    30
2     2    28
3     3    31
4     4    30
5     5    31
6     6    30

となる。
このノリで全部いいんじゃないかな、xtsとかもういらない子なじゃないかなと思ってる。