!移動平均や移動累計を求める 下記のデータ 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