トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン 印刷

移動平均

auditR

移動平均や移動累計を求める

下記のデータ

   day event
1    1     a
2    1     a
3    1     b
4    1     c
5    2     a
6    2     b
7    2     c
8    3     a
9    3     a
10   4     b
11   4     a
12   4     c
13   4     b
14   5     c
15   5     a
16   5     b
17   6     c
18   6     b
19   6     a
20   6     a

に対して、dayごとにa, b, cの件数を計算し、3日の移動累計や平均を求める。

df = read.table("clipboard") #Linuxの場合、クリップボードデータをそのまま読み込める
df %>% group_by(day, event) %>% 
 summarise(N=n()) %>% 
 pivot_wider(names_from = event, values_from = N, values_fill = 0) %>% 
 zoo::rollsum(3)  #3日移動累計。移動平均なら、rollmean()を使う

得られる結果(移動累計)

    day a b c
[1,]   6 5 2 2
[2,]   9 4 3 2
[3,]  12 4 3 2
[4,]  15 4 4 3

Last updated 2020-07-04 | auditR (c) N.Nawata