How to perform Rolling Average in R

How to perform Rolling Average in R, A rolling average in time series analysis represents the average value over a predetermined number of prior periods.

Using the rollmean() function from the zoo package in R is the simplest approach to compute a rolling average:

library(dplyr)
library(zoo)

Calculate the 3-day rolling average

df %>%
mutate(rolling_avg = rollmean(values, k=3, fill=NA, align='right'))

For the column labeled values, this particular example computes a 3-day rolling average.

How to use this function is explained in the example that follows.

How to perform Rolling Average in R

Let’s say we have the following R data frame, which displays sales of a certain product over a period of 10 days:

Let’s create a data frame

df <- data.frame(day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 sales=c(215, 120, 114, 116, 217, 120, 112, 115, 114, 191))
df
   day sales
1    1   215
2    2   120
3    3   114
4    4   116
5    5   217
6    6   120
7    7   112
8    8   115
9    9   114
10  10   191

For each row of the data frame, we can add a new column called avg_sales3 that shows the rolling average of sales for the preceding three days:

library(dplyr)
library(zoo)

Now calculate 3-day rolling average of sales

df %>%
  mutate(avg_sales3 = rollmean(sales, k=3, fill=NA, align='right'))
    day sales avg_sales3
1    1   215         NA
2    2   120         NA
3    3   114   149.6667
4    4   116   116.6667
5    5   217   149.0000
6    6   120   151.0000
7    7   112   149.6667
8    8   115   115.6667
9    9   114   113.6667
10  10   191   140.0000

The quantity of prior periods used to generate the rolling average is controlled by the value of the k parameter in the rollmean() function.

The rolling average of the sales figure for the preceding three periods is displayed in the avg_sales3 column.

For instance, the first result of 149.6667 is determined as follows:

3-Day Moving Average is equal to 149.6667 (215 + 120 + 114) / 3.

The modify() function’s multiple rollmean() capabilities can be used to perform numerous rolling average calculations simultaneously.

The code below, for instance, demonstrates how to compute the 3-day and 4-day moving averages of sales:

ggplot2 scale in R (grammar for graphics) »

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

20 − 4 =

Ads Blocker Image Powered by Code Help Pro

Quality articles need supporters. Will you be one?

You currently have an Ad Blocker on.

Please support FINNSTATS.COM by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock