- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!移動平均や移動累計を求める
下記のデータ
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