To **calculate** a **mean** or **average** in **R**, you can **“use the mean() function.”** For example, **mean(c(1, 2, 3, 4)) **function returns **2.5**.

**Syntax**

`mean(x, trim, na.rm)`

**Parameters**

**x:**The**x**is a Numeric Vector.

**trim**: It drops some observations from both ends of the sorted vector.**na.rm:**It is a boolean value to ignore the NA value.

**Return value**

The **mean()** function returns the arithmetic mean of the input **numeric vector.**

**Example 1: Calculating the mean of a vector**

Using the **mean()** function to find the mean or average of a vector.

```
rv <- c(11, 21, 19, 18, 51, 51, 71)
# Calculating average using mean()
mean(rv)
```

**Output**

`[1] 34.57143`

**Example 2: Calculating the mean of a data frame column**

The data frame column is a vector, so you can use the **mean()** function to calculate the average of the data frame column in R.

```
df <- data.frame(
id = c(11, 22, 33, 44, 55),
price = c(19, 46, 21, 11, 18)
)
# Calculate mean of DataFrame column
mean_of_col <- mean(df$price)
mean_of_col
```

**Output**

`[1] 23`

**Example 3: Passing the trim option to the mean() function**

The **mean()** function optionally takes the **trim **parameter. When you pass the trim parameters, the values in the vector get sorted, and then the required observations are dropped from calculating the mean.

If you pass the **0.3, **3 values from each end will be dropped from the calculations to find the mean.

```
# Create a vector.
rv <- c(11, 18, 19, 21, 29, 46)
# Find Mean of rv vector.
meanResult <- mean(rv, trim = 0.3)
print(meanResult)
```

**Output**

`[1] 21.75`

**Example 4: Ignoring NA values in the mean() function**

If there are missing values, then the mean() function returns **NA**.

```
# Create a vector.
rv <- c(11, 18, 19, NA, 29, 46)
# Find Mean of rv vector.
meanResult <- mean(rv)
print(meanResult)
```

**Output**

`[1] NA`

To drop the missing values from the calculation, use **na.rm = TRUE**. Which means removing the **NA** values.

```
# Create a vector.
rv <- c(11, 18, 19, NA, 29, 46)
# Find Mean of rv vector.
meanResult <- mean(rv, na.rm = TRUE)
print(meanResult)
```

**Output**

`[1] 24.6`

**Example 5: Plotting the mean values using ggplot2**

To plot the mean (or average) of a dataset in R, you would typically visualize the data points and then overlay a horizontal line representing the mean value.

```
# Generating 10 random numbers from a standard normal distribution
data <- rnorm(10)
# Calculate the mean
data_mean <- mean(data)
# Plotting the data using base R graphics
plot(1:10, data, pch=19, col="blue", ylim=c(min(data) - 1, max(data) + 1),
xlab="Index", ylab="Value", main="Scatter Plot with Mean Overlay")
abline(h=data_mean, col="red", lwd=2) # Overlaying the mean
grid(col="gray")
legend("topright", legend=paste("Mean =", round(data_mean, 2)), col="red", lwd=2)
```

**Output**

**Conclusion**

**Beginner Level:** For newcomers, the **mean()** function is a simple function to calculate averages of numeric value quickly.

**Intermediate Level:** At this level, understanding how to handle missing values with na.rm or using the trim parameter for a trimmed mean becomes important.

**Advanced Level:** Advanced users might need to implement weighted means manually or use other specialized packages for robust statistical analysis. They should also be aware of type coercion behaviors when applying **mean()** to non-numeric vectors.

**Related posts**

Krunal Lathiya is a seasoned Computer Science expert with over eight years in the tech industry. He boasts deep knowledge in Data Science and Machine Learning. Versed in Python, JavaScript, PHP, R, and Golang. Skilled in frameworks like Angular and React and platforms such as Node.js. His expertise spans both front-end and back-end development. His proficiency in the Python language stands as a testament to his versatility and commitment to the craft.