У меня есть фрейм данных df
str(df)
'data.frame': 396 obs. of 23 variables:
$ Year : chr "1986" "1986" "1986" "1986" ...
$ Month : chr "Jan" "Feb" "Mar" "Apr" ...
$ Season : Factor w/ 4 levels "Monsoon","PostMonsoon",..: 4 4 3 3 3 1 1 1 2 2 ...
$ stn1 : num 2.3 42.3 91.1 267.4 482.1 ...
$ stn2 : num 0 9 23.8 61.7 68.3 ...
$ stn3 : num 0 10 34.6 52.5 122 …
Я хочу рассчитать скользящее среднее значение за 3 месяца, и я попробовал следующий код
library(zoo)
Roll_mean <- function(x){rollmean(x,3)} #creating a function to calculate 3 month rolling mean
monthroll_mean <- df[-2] %>% group_by(Year, Season) %>% summarise_all(list(Roll_mean))
Однако я не понимаю, чего ожидаю.
Например, я хочу, чтобы мой окончательный кадр данных был таким.
head(monthroll_mean)
Year Months stn1 stn2 stn3
<chr> <fct> <dbl> <dbl> <dbl>
1 1986 DJF 32.0 10.0 10
2 1986 JFM 1157. 141. 282.
3 1986 FMA 280. 51.3 69.7
4 1986 MAM 352. 78.5 121.
5 1986 AMJ 27.3 4.47 20.5
6 1986 MJJ 1005. 139. 235
Как создать столбец «Месяцы», для которого требуется скользящее среднее значение за 3 месяца.
Ваша помощь будет оценена