You can use the following syntax to calculate a conditional mean in R:

mean(df[df$team == 'A', 'points'])

This calculates the mean of the ‘points’ column for every row in the data frame where the ‘team’ column is equal to ‘A.’

The following examples show how to use this syntax in practice with the following data frame:

#create data frame df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'), points=c(99, 90, 93, 86, 88, 82), assists=c(33, 28, 31, 39, 34, 30)) #view data frame df team points assists 1 A 99 33 2 A 90 28 3 A 93 31 4 B 86 39 5 B 88 34 6 B 82 30

**Example 1: Calculate Conditional Mean for Categorical Variable**

The following code shows how to calculate the mean of the ‘points’ column for only the rows in the data frame where the ‘team’ column has a value of ‘A.’

#calculate mean of 'points' column for rows where team equals 'A' mean(df[df$team == 'A', 'points']) [1] 94

The mean value in the ‘points’ column for the rows where ‘team’ is equal to ‘A’ is **94**.

We can manually verify this by calculating the average of the points values for only the rows where ‘team’ is equal to ‘A’:

- Average of Points: (99 + 90 + 93) / 3 =
**94**

**Example 2: Calculate Conditional Mean for Numeric Variable**

The following code shows how to calculate the mean of the ‘assists’ column for only the rows in the data frame where the ‘points’ column has a value greater than or equal to 90.

#calculate mean of 'assists' column for rows where 'points' >= 90 mean(df[df$points >= 90, 'assists']) [1] 30.66667

The mean value in the ‘assists’ column for the rows where ‘points’ is greater than or equal to 90 is **30.66667**.

We can manually verify this by calculating the average of the points values for only the rows where ‘team’ is equal to ‘A’:

- Average of Assists: (33 + 28 + 31) / 3 =
**30.66667**

**Additional Resources**

The following tutorials explain how to calculate other mean values in R:

How to Calculate a Trimmed Mean in R

How to Calculate Geometric Mean in R

How to Calculate a Weighted Mean in R