トップ 一覧 検索 ヘルプ RSS ログイン 印刷

移動平均の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!移動平均や移動累計を求める

下記のデータ
    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