What’s New ?

The Top 10 favtutor Features You Might Have Overlooked

Read More

Mutate Function in R | A Deep Dive

  • Oct 20, 2023
  • 6 Minutes Read
Mutate Function in R | A Deep Dive

In the world of data manipulation with R, the mutate() function is a powerful tool that allows you to transform and create new variables in your data frame. It is a fundamental function in the popular dplyr package, which is a part of the tidyverse ecosystem in R. In this article, we will explore the mutate() function in depth, its applications, how to use it effectively and distinguish it from mutate() in plyr.

What is mutate used for in R?

The mutate() function in R is primarily used for creating new variables (columns) in a data frame by applying various operations to existing columns. These operations can include mathematical calculations, conditional statements, and other data transformations. Mutating data is essential in data analysis and preprocessing, as it allows you to derive meaningful insights by generating new features or modifying existing ones.

Mutate Function in R

Let's now dive deeper and learn more about the mutate() function in R.

How to use mutate in R

Using the mutate() function in R is straightforward. To use it, you need to load the dplyr package if it is not already loaded. Here's how you can do it:



Now, let's consider a simple example to understand how to use mutate() effectively. Suppose you have a data frame named df with columns height and weight. You want to calculate the Body Mass Index (BMI) and store it in a new column called bmi. You can achieve this using mutate() as follows:

df <- df %>%
  mutate(bmi = weight / (height^2))


In this example, we are creating a new variable bmi by dividing the weight by the square of the height. The %>% operator, also known as the pipe operator, is used to chain multiple operations together in a readable and efficient way. It is part of the dplyr package.

What does mutate do in R?

The mutate() function in R does the following:

  1. Creates New Variables: It creates new columns in the data frame, allowing you to add calculated or transformed values.

  2. Modifies Existing Variables: You can also use mutate() to modify existing columns by applying transformations to them.

  3. Maintains Data Frame Structure: mutate() returns a new data frame with the added or modified variables, while keeping the original data frame intact. This is helpful for maintaining data integrity.

  4. Allows Chaining: It works seamlessly with other dplyr functions, enabling you to create a chain of operations that make your code more readable and maintainable.

  5. Handles Missing Values: mutate() can handle missing values (NA) in the data, and you can define how the function should handle them using arguments like na.rm.

What is the difference between mutate plyr and dplyr?

While both plyr and dplyr provide functions for data manipulation in R, there are key differences between the mutate() functions in these packages.

1. Syntax and Verbosity:

  • mutate() in plyr: The mutate() function in the plyr package is part of the plyr family of functions. It has a more complex syntax and is considered less readable for users who are new to R. It requires specifying the data frame as the first argument and uses the transform function.

  • mutate() in dplyr: The mutate() function in the dplyr package is designed to work seamlessly with the pipe operator (%>%) and follows a more intuitive and readable syntax. It is more concise and user-friendly.

2. Data Frame Handling:

  • mutate() in plyr: In plyr, when you use mutate(), it creates a new data frame with the added columns. You need to assign the result to a new variable or overwrite the existing data frame.

  • mutate() in dplyr: In dplyr, mutate() creates a new data frame with the added columns, but it can be used in a pipeline without explicitly assigning the result to a new variable. This feature makes it more convenient for data manipulation workflows.

3. Performance:

  • dplyr functions, including mutate(), are known for their better performance compared to plyr, especially for large datasets. dplyr is designed to be more efficient and is optimized for speed.


In summary, if you are working with R and seeking a more efficient and user-friendly way to manipulate data, it is recommended to use mutate() from the dplyr package. This choice will not only make your code more readable but also enhance the performance of your data manipulation tasks. The mutate() function in R, especially in the dplyr package, is a crucial tool for data manipulation. It allows you to create new variables, modify existing ones, and maintain the integrity of your data frame. Understanding how to use mutate() effectively can significantly improve your data analysis and preprocessing workflows, making R a powerful tool for data scientists and analysts.

FavTutor - 24x7 Live Coding Help from Expert Tutors!

About The Author
Abhisek Ganguly
Passionate machine learning enthusiast with a deep love for computer science, dedicated to pushing the boundaries of AI through academic research and sharing knowledge through teaching.