# Cumulative Mean in R (3 Examples)

In this article, I’ll show how to **compute the cumulative average** in the R programming language.

The tutorial consists of the following information:

It’s time to dive into the exemplifying R code:

## Creation of Example Data

The first step is to create some example data:

x <- c(5, 5, 1, 3, 9, 2) # Create example data x # Print example data # [1] 5 5 1 3 9 2 |

x <- c(5, 5, 1, 3, 9, 2) # Create example data x # Print example data # [1] 5 5 1 3 9 2

The previous output of the RStudio console shows that our example data is a numeric vector with a length of six.

## Example 1: Calculate Cumulative Mean Using cumsum() & seq_along() Functions

Example 1 shows how to get the cumulative mean of our example vector using the cumsum and seq_along functions provided by the basic installation of the R programming language.

Have a look at the following R code and its output:

x_cm1 <- cumsum(x) / seq_along(x) # Apply cumsum & seq_along x_cm1 # Print cumulative mean # [1] 5.000000 5.000000 3.666667 3.500000 4.600000 4.166667 |

x_cm1 <- cumsum(x) / seq_along(x) # Apply cumsum & seq_along x_cm1 # Print cumulative mean # [1] 5.000000 5.000000 3.666667 3.500000 4.600000 4.166667

As you can see, we have created a new vector object called x_cm1 that consists of six numeric values. Each of these values is the cumulative mean corresponding to the elements of our input vector.

## Example 2: Calculate Cumulative Mean Using cummean() Function of dplyr Package

In Example 2, I’ll explain how to use the cummean function of the dplyr package to compute the cumulative average of a numeric vector.

We first need to install and load the dplyr package to R, if we want to use the functions that are contained in the package:

install.packages("dplyr") # Install dplyr package library("dplyr") # Load dplyr |

install.packages("dplyr") # Install dplyr package library("dplyr") # Load dplyr

Next, we can apply the cummean function to create a new vector of cumulative averages:

x_cm2 <- cummean(x) # Apply cummean x_cm2 # Print cumulative mean # [1] 5.000000 5.000000 3.666667 3.500000 4.600000 4.166667 |

x_cm2 <- cummean(x) # Apply cummean x_cm2 # Print cumulative mean # [1] 5.000000 5.000000 3.666667 3.500000 4.600000 4.166667

The previous R code has created another vector object called x_cm2 that contains exactly the same output as Example 1. However, this time we have used the cummean function of the dplyr package.

## Example 3: Add Cumulative Mean as Column to Data Frame

In this example, I’ll show how to create a data frame containing our original values and the cumulative mean of these values in a new variable.

For this task, we can apply the data.frame function and the cummean function of the dplyr package as shown below:

data <- data.frame(x, cm = cummean(x)) # Create data frame with cumulative mean data # Print data frame with cumulative mean |

data <- data.frame(x, cm = cummean(x)) # Create data frame with cumulative mean data # Print data frame with cumulative mean

Table 1 illustrates the data frame that we have just created. Our new data frame consists of two columns. The column x contains our original input values and the column cm contains the cumulative means that correspond to our input vector.

## Video, Further Resources & Summary

I have recently published a video on my YouTube channel, which shows the R syntax of this post. You can find the video below:

**Please accept YouTube cookies to play this video.** By accepting you will be accessing content from YouTube, a service provided by an external third party.

If you accept this notice, your choice will be saved and the page will refresh.

In addition, you might read the related articles that I have published on this website:

- cumall, cumany & cummean R Functions of dplyr Package
- cumsum Function in R
- Cumulative Frequency & Probability Table
- Calculate Moving Average, Maximum, Median & Sum of Time Series
- R Programming Tutorials

This article has demonstrated how to **calculate the rolling average** in the R programming language. Please let me know in the comments section, in case you have additional questions.

### Statistics Globe Newsletter